我派生出一个ImageView的类,里面监听了触屏,当按中这个图片时,希望它变成反显,松开后又恢复原形,不知道在onDraw里面应该怎么做?最好能够简单处理,不要将图片导出,反显处理后再setImageBitmap,这样感觉比较不好。

解决方案 »

  1.   

    用selector来做,xml里定义pressed那张图片是反显的,然后把xml放在drawable目录下。就是你有两张图片,一张是正常的,一张是反显的,按下去的时候就让它显示反显的那张图。
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="false" android:drawable="@drawable/image_unpressed"></item>
        <item android:state_pressed="true" android:drawable="@drawable/image_pressed"></item>
    </selector>
    比方你的xml写成这样,名字叫xyz.xml,放在drawable下。在你ImageView的xml里定义android:background="@drawable/xyz"。这样你按下ImageView的时候,就会显示反显的图片了。
      

  2.   

    我的图像是在程序运行中生成的,画在Bitmap里。
      

  3.   

    在这个图上面覆盖一个半透明view或者图片就可以吧
      

  4.   

    在onDraw里面贴上一块薄膜应该也可以,只是还不懂得如何穿半透明的衣服。
      

  5.   

    用布局在ImageView上面再套一层,在这上面设置selector
      

  6.   

    一楼方法正解,常用的方法。
    楼主如果想onDraw里面画的话,可能需要用简单的图像像素点算法处理,稍微有点麻烦,还不如直接用两张图片,一张正常的,一张反显的。