2016-04-29 3 views
0

私はImageViewのアイコンを持っています。私はできるようになりたい:

。 に - (ACTION_DOWN上のアイコン#2に変更だけでなく、ACTION_UPにバックアイコン#1にそれを変更するという意味)
ホバー上のアイコンを変更します。 - とき、私は知ることができないACTION_UPと実際のクリックをonTouchListenerで区別するにはどうすればいいですか?

@Override 
public boolean onTouch(View v, MotionEvent event) { 

    switch (event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      // CHANGE TO IMAGE #2 
      break; 

     case MotionEvent.ACTION_UP: 
      // CHANGE TO IMAGE #1 
      break; 
    } 

    return true; 
} 

問題がある:これは私のonTouchが今どのように見えるかです

- onClickの機能を(ImageViewをクリックした際に別の関数を呼び出すという意味)トリガユーザーは私のImageViewを押した後、を押しながら、そのエリアを出ました。私はそれをうまく解説して欲しい。つまり、ACTION_UPは、ユーザーが意図したことを必ずしも意味しているわけではありません。ビューをクリックします。 ImageViewの場合は、をクリックしただけで、ホバー上のアイコンを変更することはできますか?

+2

さて、私はあなたのイメージ – Nowshad

+0

@Nowshadはい、偉大なために、[セレクタ](http://www.mkyong.com/android/android-imagebutton-selector-example/を)したいと思います。このコメントありがとうございます。 –

+1

onclickイベントの処理に問題がある場合は、setOnLongClickListener.Checkを実行して、同様の問題に直面しているかどうかを確認してください。 – Lampard

答えて

1

使用Selector Drawable Something Like This

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <!-- default --> 
    <item android:drawable="@drawable/btn_bg" android:state_focused="false" android:state_pressed="false" /> 

    <!-- button focused --> 
    <item android:drawable="@drawable/btn_bg_focus_new" android:state_focused="true" android:state_pressed="false" /> 

    <!-- button pressed --> 
    <item android:drawable="@drawable/btn_bg_focus_new" android:state_focused="false" android:state_pressed="true" /> 
</selector> 
1

セレクタを使用するとよいでしょう。 StateListについて詳しく読むことができます。インターネットには多くの例があります。

+0

とてもシンプルです。ありがとうございました! –

関連する問題