忽略单击ImageView的透明部分

时间:2014-08-19 12:47:36

标签: android imageview

我有两个相互重叠的ImageView,它们都包含一些带有透明部分的图像(PNG)。 当我单击imageView的透明部分时,将为此imageView调用eventListener。我想只在点击一个不透明的部分时调用监听器! 这样就可以点击“通过”imageView,并可能调用后面的imageView的监听器。

1 个答案:

答案 0 :(得分:3)

获取imageview并将其与视图绑定,将绘图缓存设置为true 的 ImageView的:

ImageView imgView= (ImageView) findViewById(R.id.color_blue);
imgView.setDrawingCacheEnabled(true);
imgView.setOnTouchListener(changeColorListener);

Imageview的OnTouchListener:

private OnTouchListener changeColorListener = new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        Bitmap bmp = Bitmap.createBitmap(v.getDrawingCache());
        int color = bmp.getPixel((int) event.getX(), (int) event.getY());
        if (color == Color.TRANSPARENT)
            return false;
        else {
            //click portion without transparent color
            return true;
        }
    }
};