2017-02-28 2 views
0

現在、私は一部のImageViewを保持するGridViewを持っています。 GridViewはsetOnItemClickListenerを実装しています。 onItemClickが発生すると、ユーザーはダイアログを表示し、押したときまたは閉じたときに、現在のGridViewに戻ります。 これまですべて正常に動作します。GridView(ImageViewsの):setOnTouchListenerとsetOnItemClickListenerの実装

選択したimageView(別の画像、またはアルファのみ)を変更する方法があるかどうかを知りたいと思います。

イメージを変更するためにsetOnItemClickListenerの内部を試しましたが、dialog.dismiss()コールの後に通常のイメージに戻そうとすると、白い画面が数ミリ秒間ポップアップします。画像は正しく設定されていますが、私はこの白い画像を避けたいと思います。

GridView.setOnTouchListenerを実装しようとしましたが、白い画面(数ミリ秒間)しか表示されず、他の操作は実行されませんでした(ポップアップダイアログなし)。

ViewHolderクラスの中でOnTouchListenerを実装しようとしましたが、いくつかの問題(ACTION_DOWNのアルファを変更すると永続的でしたので、アルファを通常に戻すために同じ項目を再選択しなければならなかった) setOnItemClickListenerはまったく動作しません。

誰かがこれを手伝ってくれますか? ありがとうございます!

答えて

0

同じ問題を抱えている人のために、私はTransitionDrawableを使用しました。私のimageAdapter内部では、私は遷移xmlファイルをロード:(多少の遅延が必要とされている)

ViewHolder holder = (ViewHolder) v.getTag(); 
final ImageView imageview = holder.image; 
((TransitionDrawable)imageview.getDrawable()).startTransition(2000); 

し、次のコマンドを実行する:

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

    <item android:drawable="@drawable/soft"/> 
    <item android:drawable="@drawable/soft_pressed"/> 

</transition> 

とgridview.setOnItemClickListenerに、私はこのコードのサンプルを使用しました:

final Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
    YourMethod(...); 
    //reverse the transition 
((TransitionDrawable)imageview.getDrawable()).reverseTransition(2000); 
    } 
    }, 2000); 
関連する問題