2016-01-28 4 views
0

У меня есть набор imageButtons, размещенный в относительной компоновке, и каждый imageButton имеет фигуру внутри нее, которая видна, пока остальная ее часть установлена ​​в альфу. В настоящее время эти кнопки немного перекрываются, и я пытаюсь закодировать его так, что когда альфа-часть одной кнопки нажата, она игнорирует эту кнопку и проверяет кнопку под ней. В настоящее время я использую onTouch() с OnTouchListener, чтобы получить координаты касания на экране x и y, но это вычисляется на основе всего экрана из того, что я могу сказать. Есть ли способ использовать позицию, найденную с event.getX() и event.getY(), чтобы посмотреть, где находится кнопка на экране, и посмотреть, прозрачно ли это пятно на кнопке или нет?android: поиск позиции щелчка по кнопке

ответ

0

Использовать View.getLocationOnScreen() и/или getLocationInWindow(). https://stackoverflow.com/a/2226048/1979882

Для того, чтобы проверить, если альфа-канал существует, я хотел бы использовать:

public static Bitmap loadBitmapFromView(View v) { 
    Bitmap bitmap; 
    v.setDrawingCacheEnabled(true); 
    bitmap = Bitmap.createBitmap(v.getDrawingCache()); 
    v.setDrawingCacheEnabled(false); 
    return bitmap; 
} 

и, чем обнаружить значение ARGB для конкретного пикселя.

int pixel = bitmap.getPixel(x,y); 

Теперь вы можете получить каждый канал:

int alphaValue = Color.alpha(pixel); 
int redValue = Color.red(pixel); 
int blueValue = Color.blue(pixel); 
int greenValue = Color.green(pixel); 

https://stackoverflow.com/a/31775271/1979882

+0

Таким образом, используя это с координатами найденных с GetX() и Гети() даст мне абсолютные координаты в поле зрения где пользователь коснулся экрана, это правильно? С этим, однако, можно ли увидеть, прозрачна ли эта точка на кнопке, расположенной в этом месте в представлении, прозрачно или нет? – user3686124

+0

@ пользователь3686124, да. обновлено. – Vyacheslav

+0

После того, как вы попробовали этот метод, он, похоже, проверяет альфа-окраску на фоне макета, а не на пятне на кнопке. кнопка, не включенная в растровое изображение, когда она создана из представления? Кроме того, следует ли искать alphaValue для использования Color.alpha (pixel)? – user3686124

Смежные вопросы