簡體   English   中英

Android-如何檢測自定義形狀按鈕的單擊區域的透明度

[英]Android - How to detect transparency of the clicked area of custom shaped buttons

我有一些不規則形狀的按鈕,創建為ImageButtons。 ImageButton的“ android:src”屬性是具有透明背景的.PNG文件。 這些ImageButton的父級布局具有自定義背景圖片,該圖片由“ android:background”屬性定義。 因此,活動的背景不是透明的,或者僅僅是黑色的。

我的問題是; 如何檢測單擊按鈕是在源圖像的透明區域還是在源圖像的可見部分?

我嘗試使用onTouchListener來獲取事件的坐標並根據像素的顏色做出決定; 但是由於背景是彩色的,所以我講不清楚。

很感謝任何形式的幫助。 提前致謝!

嗨,兄弟,我認為此鏈接可能會對您有所幫助。

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/view/View.java#View.dispatchTouchEvent%28android.view.MotionEvent%29

如果點不在所需區域中,則需要在自定義按鈕中覆蓋此方法以返回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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM