[英]Android - How to detect transparency of the clicked area of custom shaped buttons
我有一些不規則形狀的按鈕,創建為ImageButtons。 ImageButton的“ android:src”屬性是具有透明背景的.PNG文件。 這些ImageButton的父級布局具有自定義背景圖片,該圖片由“ android:background”屬性定義。 因此,活動的背景不是透明的,或者僅僅是黑色的。
我的問題是; 如何檢測單擊按鈕是在源圖像的透明區域還是在源圖像的可見部分?
我嘗試使用onTouchListener來獲取事件的坐標並根據像素的顏色做出決定; 但是由於背景是彩色的,所以我講不清楚。
很感謝任何形式的幫助。 提前致謝!
嗨,兄弟,我認為此鏈接可能會對您有所幫助。
如果點不在所需區域中,則需要在自定義按鈕中覆蓋此方法以返回false。 我建議您這樣處理:
public static class MyButton extends ImageButton {
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
int iX = (int) event.getX();
int iY = (int) event.getY();
// TODO Or use a more sophisticated, pixel value-based condition
if (!(iX >= 0 & iY >= 0 & iX < TheBitmap.getWidth() & iY < TheBitmap.getHeight())) {
return false;
}
return super.dispatchTouchEvent(event)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.