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

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

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

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

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

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

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

Android Программно узнать цвет пикселя
Как нарисовать Bitmap на Canvas'е Android
Android Как очистить canvas?
Android Как изменить цвет пункта ListView при нажатии на него и сохранять его цвет при проматывании списка?
Android Получить цвет пикселя на экране по координатам на delphi
Android Как рисовать текст на Canvas во View?
Как масштабировать нарисованное на холсте по размеру экрана? android.graphics.Canvas Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
28.01.2014, 16:16     Как в обьекте canvas определить цвет пикселя с заданными координатами #2
http://developer.alexanderklimov.ru/...implepaint.php
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 421
28.01.2014, 16:27  [ТС]     Как в обьекте canvas определить цвет пикселя с заданными координатами #3
Статейка полезная, но ответа на мой вопрос там нет. Именно через canvas я и рисую в своей игре, но как узнать цвет пикселя на экране, или с самого экрана или с canvas?
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
28.01.2014, 16:34     Как в обьекте canvas определить цвет пикселя с заданными координатами #4
http://lmgtfy.com/?q=canvas+get+pixel+color+android
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 421
28.01.2014, 16:56  [ТС]     Как в обьекте canvas определить цвет пикселя с заданными координатами #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
Что может біть не так?
MegaSinner
91 / 91 / 3
Регистрация: 09.04.2010
Сообщений: 746
28.01.2014, 18:29     Как в обьекте canvas определить цвет пикселя с заданными координатами #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 минут
...
Vladimirys
297 / 194 / 21
Регистрация: 16.01.2010
Сообщений: 548
28.01.2014, 19:32     Как в обьекте canvas определить цвет пикселя с заданными координатами #7
Не оно? http://stackoverflow.com/questions/7...our-in-android
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 421
28.01.2014, 19:42  [ТС]     Как в обьекте canvas определить цвет пикселя с заданными координатами #8
мне нужно цвет пикселя получить с canvas,
MegaSinner
91 / 91 / 3
Регистрация: 09.04.2010
Сообщений: 746
28.01.2014, 19:59     Как в обьекте canvas определить цвет пикселя с заданными координатами #9
ASDFD12, оно и получает у меня с канваса, точнее с того же битмапа, на котором рисую красные линии канвасом..
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 421
28.01.2014, 20:14  [ТС]     Как в обьекте canvas определить цвет пикселя с заданными координатами #10
[QUOTE=MegaSinner;5706128]ASDFD12, Битмап объяви паблическо-статическим и this там не нужно.
Java
1
if (bmp_to_draw.getPixel(x, y) == Color.RED)...
И ты, наверное, рисуешь не там, где нужно..

Что ты имеешь ввиду, можешь обьяснить почему мой пример не работает?
MegaSinner
91 / 91 / 3
Регистрация: 09.04.2010
Сообщений: 746
28.01.2014, 20:15     Как в обьекте canvas определить цвет пикселя с заданными координатами #11
ASDFD12, у тебя, похоже, битмап вообще не связан с канвасом.
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 421
28.01.2014, 21:38  [ТС]     Как в обьекте canvas определить цвет пикселя с заданными координатами #12
Цитата Сообщение от MegaSinner Посмотреть сообщение
ASDFD12, у тебя, похоже, битмап вообще не связан с канвасом.
Я понял.
Я что-то думал, что getDrawindCache() применяется для canvas.
Куда тогда записывается canvas после отображения, и есть ли слои в canvas? Тоесть когда при следующем выводе canvas его содержимое будет полупрозрачным, то будет видно как предыдущее изображение так и выводимое. Меня интересует в этот момент содержимое canvas - это предыдущее + наложенное выводимое, или предыдущее хранится уже в другом обьекте, а выводимое в canvas?
MegaSinner
91 / 91 / 3
Регистрация: 09.04.2010
Сообщений: 746
29.01.2014, 00:17     Как в обьекте canvas определить цвет пикселя с заданными координатами #13
ASDFD12, нету там никаких слоев - есть полотно(битмап) и канвас рисует на нем, по этому нужно вовремя его очищать, чтобы не было наложения нового, на уже не нужное старое - в моем случае я перерисовую тот прозрачный PNG (обновляю битмап).
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 421
29.01.2014, 02:35  [ТС]     Как в обьекте canvas определить цвет пикселя с заданными координатами #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 получить цвет пикселя?
MegaSinner
91 / 91 / 3
Регистрация: 09.04.2010
Сообщений: 746
29.01.2014, 10:19     Как в обьекте canvas определить цвет пикселя с заданными координатами #15
Цитата Сообщение от ASDFD12 Посмотреть сообщение
bmp_to_draw - и получается тот Bitmap на который происходит рисование?
- да, он самый.
Цитата Сообщение от ASDFD12 Посмотреть сообщение
по умолчанию canvas рисует на Surface. Как тогда из Surface получить цвет пикселя?
- с сурфейса не знаю, но ничто тебе не мешает вместо него повесить тачлистенер на ImageView - результат тот же.
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 421
29.01.2014, 21:28  [ТС]     Как в обьекте canvas определить цвет пикселя с заданными координатами #16
Цитата Сообщение от MegaSinner Посмотреть сообщение
ASDFD12, нету там никаких слоев - есть полотно(битмап) и канвас рисует на нем, по этому нужно вовремя его очищать, чтобы не было наложения нового, на уже не нужное старое - в моем случае я перерисовую тот прозрачный PNG (обновляю битмап).
Если так, то как тогда работают графические фильтры, о которых вы говорили в моей теме "Ограничение движения персонажа". Я так понял, на нужный обьект накладывается фон, с заданым цветом и прозрачночстью 100%, мы видим обьект таким как нужно, а цвет там красный, как такое возможно без использование слоев (при рисовании на единственный Bitmap)?

Добавлено через 9 часов 36 минут
(_!_)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2014, 00:07     Как в обьекте canvas определить цвет пикселя с заданными координатами
Еще ссылки по теме:

Android Как сделать так, чтобы вводимый текст сразу же рисовался в canvas?
Android Как разместить EditText и область рисования Canvas в одном Activity?
Android Как в canvas сделать плавный переход от одной картинки к другой?
OnTouch узнать цвет пикселя Android
Android Изменить цвет пикселя на изображении

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

Или воспользуйтесь поиском по форуму:
MegaSinner
91 / 91 / 3
Регистрация: 09.04.2010
Сообщений: 746
30.01.2014, 00:07     Как в обьекте canvas определить цвет пикселя с заданными координатами #17
ASDFD12, а я и не говорил, что без слоев или ты не так понял:
- нижние слои - графика игры (фон/персонажи).
- средний слой (невидимый) - маска.
- верхний слой (полностью прозрачный(ImageView)) - поверхность для касаний..
Еще вопросы?
Yandex
Объявления
30.01.2014, 00:07     Как в обьекте canvas определить цвет пикселя с заданными координатами
Ответ Создать тему
Опции темы

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