完成触摸ImageView后

时间:2015-12-19 15:35:51

标签: android android-imageview

我想制作一个ImageView?当我触摸它时会改变背景,当我将手指拖远时,它变得正常我不知道该怎么做,谢谢

 imgButton.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            cmp++;
            txt2.setText(" " + cmp);
            //Quant on touche l'image :
            if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
                imgButton.getDrawable().setColorFilter(0x77000000, PorterDuff.Mode.SRC_ATOP);
            }
            // si Je bouge le dois sur l'image et ....
            if (event.getActionMasked() == MotionEvent.ACTION_MOVE) {
                //... et que le doit quitte l'image
                if (event.getX() < 0 || event.getX() > v.getWidth() || event.getY() < 0 || event.getY() > v.getHeight()) {
                    imgButton.getDrawable().setColorFilter(0x00000001, PorterDuff.Mode.SRC_ATOP);
                }
                if (event.getX() > 0 && event.getX() < v.getWidth() && event.getY() > 0 && event.getY() < v.getHeight()) {
                    // ... et que le doit revient vers L'image
                    imgButton.getDrawable().setColorFilter(0x77000000, PorterDuff.Mode.SRC_ATOP);
                }
            }
            // Si je lève le doits et...
            if (event.getActionMasked() == MotionEvent.ACTION_UP) {
                // .... sur l'image :
                if (event.getX() > 0 && event.getX() < v.getWidth() && event.getY() > 0 && event.getY() < v.getHeight()) {
                    //Finger back to the view
                    imgButton.getDrawable().setColorFilter(0x00000001, PorterDuff.Mode.SRC_ATOP);
                    Intent i = new Intent(MainActivity.this, game.class);
                    startActivity(i);
                }
            }
            return true;
        }
    });

2 个答案:

答案 0 :(得分:0)

在您的应用程序名为change.xml的可绘制文件夹下创建一个xml文件,并将其放在代码下面。用您的颜色代码修改它。

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true">
      <color android:color="#00FF00"/>
   </item>
   <item android:state_pressed="false">
      <color android:color="#00FFFF"/>
   </item>
</selector>

并将以下属性添加到布局的ImageView

android:background="@drawable/change"

答案 1 :(得分:0)

您应该使用 getActionMasked()而不是 getAction()

getAction()返回带有指针信息的操作,而 getActionMasked()仅返回简单操作,这使得操作比较正常工作。

然后在 onTouch 方法中捕获正确的操作。

exe

在大多数情况下,返回的值应为 true 。请参阅this article