Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 5.00
ASDFD12
41 / 41 / 6
Регистрация: 15.09.2012
Сообщений: 455
#1

Как в обьекте canvas определить цвет пикселя с заданными координатами - Программирование Android

28.01.2014, 14:48. Просмотров 2931. Ответов 16
Метки нет (Все метки)

как в обьекте canvas определить цвет пикселя с заданными координатами? Или может существует обьект экран и через него можно определить цвет.

Добавлено через 1 час 30 минут
Цитата Сообщение от ASDFD12 Посмотреть сообщение
как в обьекте canvas определить цвет пикселя с заданными координатами? Или может существует обьект экран и через него можно определить цвет.
Пытался для обьекта наследующего SurfaceView вызывать this.getDrawingCache(true).getPixel(312,300); - выкинуло ошибку - получается Cache отсутствует
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2014, 14:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как в обьекте canvas определить цвет пикселя с заданными координатами (Программирование Android):

Программно узнать цвет пикселя - Программирование Android
Здравствуйте) Можно ли програмно узнать цвет пикселя... тойсть задаю коордынаты а оно мне возвращает цвет... если можно то подскажыте...

OnTouch узнать цвет пикселя - Программирование Android
Добрый день, форумчане! Начал как хобби изучать андройд программирование. Работаю в Android studio. Сейчас создал проект с Draw2D с...

Изменить цвет пикселя на изображении - Программирование Android
Почему в телефоне приложение завершается (тоесть ошибка) если в загруженном BitMap изображении менять цвет пикселя Bitmap bitmap =...

Цвет пикселя экрана android-устройства - Программирование Android
Здравствуйте. Реально ли получить цвет пикселя экрана android-устройства, напрямую? Нашёл в сети такой код (Get the colour of a...

Получить цвет пикселя на экране по координатам на delphi - Программирование Android
Нужно быстро (несколько раз в секунду) получить цвет пикселя экрана в другом приложении. adb shell screencap > screen.png и adb...

Как получить цвет пикселя в JavaFx Canvas - JavaFX
Собственно вопрос, как получить цвет одного пикселя из GraphicsContext. Такая простая вещь, а не могу нагуглить нормальное решение. Знаю...

16
kirawa
34 / 34 / 1
Регистрация: 12.11.2013
Сообщений: 338
28.01.2014, 16:16 #2
http://developer.alexanderklimov.ru/android/simplepaint.php
1
ASDFD12
41 / 41 / 6
Регистрация: 15.09.2012
Сообщений: 455
28.01.2014, 16:27  [ТС] #3
Статейка полезная, но ответа на мой вопрос там нет. Именно через canvas я и рисую в своей игре, но как узнать цвет пикселя на экране, или с самого экрана или с canvas?
0
kirawa
34 / 34 / 1
Регистрация: 12.11.2013
Сообщений: 338
28.01.2014, 16:34 #4
http://lmgtfy.com/?q=canvas+get+pixel+color+android
0
ASDFD12
41 / 41 / 6
Регистрация: 15.09.2012
Сообщений: 455
28.01.2014, 16:56  [ТС] #5
В классе обьявил
Java
1
Bitmap bitmap;
В конструкторе указал
Java
1
 this.setDrawingCacheEnabled(true);
В методе onDraw
Java
1
2
canvas.drawBitmap(fon, 0, 0, null);
this.bitmap=this.getDrawingCache();
В методе onTouchEvent()
Java
1
Log.d(tag,"color:"+this.bitmap.getPixel((int)e.getX(), (int)e.getY())) ;
Виводит постоянно : color:0
Что может біть не так?
0
MegaSinner
91 / 87 / 3
Регистрация: 09.04.2010
Сообщений: 746
28.01.2014, 18:29 #6
ASDFD12, Битмап объяви паблическо-статическим и this там не нужно.
Java
1
if (bmp_to_draw.getPixel(x, y) == Color.RED)...
И ты, наверное, рисуешь не там, где нужно..

Добавлено через 7 минут
Для начала, можно так:
Java
1
2
3
4
5
6
7
8
    
 v_to_draw = (ImageView)findViewById(R.id.transparent);
        v_to_draw.setImageBitmap(BitmapFactory.decodeFile(path_to_res + "/img14.png"));
        int v_to_draw_w = width;
        int v_to_draw_h = height;
        bmp_to_draw = Bitmap.createBitmap(v_to_draw_w, v_to_draw_h, Bitmap.Config.ARGB_8888);
        canvas_to_draw = new Canvas(bmp_to_draw);
        ....
Добавлено через 5 минут
И кэш тревожить там не нужно.

Добавлено через 29 минут
...
0
Vladimirys
309 / 206 / 25
Регистрация: 16.01.2010
Сообщений: 589
28.01.2014, 19:32 #7
Не оно? http://stackoverflow.com/questions/7...our-in-android
0
ASDFD12
41 / 41 / 6
Регистрация: 15.09.2012
Сообщений: 455
28.01.2014, 19:42  [ТС] #8
мне нужно цвет пикселя получить с canvas,
0
MegaSinner
91 / 87 / 3
Регистрация: 09.04.2010
Сообщений: 746
28.01.2014, 19:59 #9
ASDFD12, оно и получает у меня с канваса, точнее с того же битмапа, на котором рисую красные линии канвасом..
0
ASDFD12
41 / 41 / 6
Регистрация: 15.09.2012
Сообщений: 455
28.01.2014, 20:14  [ТС] #10
[QUOTE=MegaSinner;5706128]ASDFD12, Битмап объяви паблическо-статическим и this там не нужно.
Java
1
if (bmp_to_draw.getPixel(x, y) == Color.RED)...
И ты, наверное, рисуешь не там, где нужно..

Что ты имеешь ввиду, можешь обьяснить почему мой пример не работает?
0
MegaSinner
91 / 87 / 3
Регистрация: 09.04.2010
Сообщений: 746
28.01.2014, 20:15 #11
ASDFD12, у тебя, похоже, битмап вообще не связан с канвасом.
0
ASDFD12
41 / 41 / 6
Регистрация: 15.09.2012
Сообщений: 455
28.01.2014, 21:38  [ТС] #12
Цитата Сообщение от MegaSinner Посмотреть сообщение
ASDFD12, у тебя, похоже, битмап вообще не связан с канвасом.
Я понял.
Я что-то думал, что getDrawindCache() применяется для canvas.
Куда тогда записывается canvas после отображения, и есть ли слои в canvas? Тоесть когда при следующем выводе canvas его содержимое будет полупрозрачным, то будет видно как предыдущее изображение так и выводимое. Меня интересует в этот момент содержимое canvas - это предыдущее + наложенное выводимое, или предыдущее хранится уже в другом обьекте, а выводимое в canvas?
0
MegaSinner
91 / 87 / 3
Регистрация: 09.04.2010
Сообщений: 746
29.01.2014, 00:17 #13
ASDFD12, нету там никаких слоев - есть полотно(битмап) и канвас рисует на нем, по этому нужно вовремя его очищать, чтобы не было наложения нового, на уже не нужное старое - в моем случае я перерисовую тот прозрачный PNG (обновляю битмап).
0
ASDFD12
41 / 41 / 6
Регистрация: 15.09.2012
Сообщений: 455
29.01.2014, 02:35  [ТС] #14
Цитата Сообщение от MegaSinner Посмотреть сообщение
ASDFD12, Битмап объяви паблическо-статическим и this там не нужно.
Java
1
if (bmp_to_draw.getPixel(x, y) == Color.RED)...
И ты, наверное, рисуешь не там, где нужно..

Добавлено через 7 минут
Для начала, можно так:
Java
1
2
3
4
5
6
7
8
    
 v_to_draw = (ImageView)findViewById(R.id.transparent);
        v_to_draw.setImageBitmap(BitmapFactory.decodeFile(path_to_res + "/img14.png"));
        int v_to_draw_w = width;
        int v_to_draw_h = height;
        bmp_to_draw = Bitmap.createBitmap(v_to_draw_w, v_to_draw_h, Bitmap.Config.ARGB_8888);
        canvas_to_draw = new Canvas(bmp_to_draw);
        ....
Добавлено через 5 минут
И кэш тревожить там не нужно.

Добавлено через 29 минут
...
Здесь строчка где вы создаете Canvas
Java
1
 canvas_to_draw = new Canvas(bmp_to_draw);
bmp_to_draw - и получается тот Bitmap на который происходит рисование?

Добавлено через 2 часа 5 минут
по умолчанию canvas рисует на Surface. Как тогда из Surface получить цвет пикселя?
0
MegaSinner
91 / 87 / 3
Регистрация: 09.04.2010
Сообщений: 746
29.01.2014, 10:19 #15
Цитата Сообщение от ASDFD12 Посмотреть сообщение
bmp_to_draw - и получается тот Bitmap на который происходит рисование?
- да, он самый.
Цитата Сообщение от ASDFD12 Посмотреть сообщение
по умолчанию canvas рисует на Surface. Как тогда из Surface получить цвет пикселя?
- с сурфейса не знаю, но ничто тебе не мешает вместо него повесить тачлистенер на ImageView - результат тот же.
0
29.01.2014, 10:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2014, 10:19
Привет! Вот еще темы с ответами:

Как определить цвет пикселя? - Delphi
Нужно определить цвет пикселя на рисунке . Как это сделать? В паскале была функция GetColor , а в Делфи как?

Функция, которая возвращает цвет пикселя в точке с координатами х, у - C++
Доброго времени суток. Уважаемые программисты, подскажите пожалуйста, есть ли в Visual Studio С++ 10 функция, которая бы возвращала цвет...

Как определить цвет пикселя по курсором? - Delphi
Подскажите, задача такая: Я перемещаю курсор в определенные координаты, мне нужно определить цвет пикселя под курсором и записать этот...

Как определить цвет пикселя на jpg картинке? - Delphi
может кто знает как определить цвет пикселя form2.image1.picture.loadfromfile('c:\WebBrowserImage.jpg'); собственно уже неделю рыскаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru