android - 忽略点击 ImageView 的透明部分

标签 android imageview

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

最佳答案

取imageview绑定(bind)view,设置drawing cache enable 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;
        }
    }
};

关于android - 忽略点击 ImageView 的透明部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25383825/

相关文章:

android - 按下状态波纹效果+正常状态透明

android - 创建带圆角的 ImageView

安卓唤醒 Action

android - 了解 Android Canvas 裁剪

android - 以编程方式清除 RelativeLayout 的内容 - android java

java - ImageView 上的 setBackgroundResource 返回 null

java - 尝试从 ImageView 的 onTouchListener 获取位图像素

android - 如何创建按下 ImageButton 的历史记录

android - 是否可以在 strings.xml 中引用另一个字符串?

android - 如何删除Android工具栏的左边距?