2017-02-28 37 views
0

目前我有一個GridView,它包含一些ImageViews。 GridView實現了setOnItemClickListener。當onItemClick發生時,用戶會得到一個對話框,然後在按下或關閉時返回到當前的GridView。 直到現在一切正常。GridView(ImageViews):setOnTouchListener和setOnItemClickListener實現

我想知道是否有方法來改變選定的imageView(與另一個圖像,甚至只是阿爾法)。

我已經嘗試在setOnItemClickListener中更改圖像,但是當我嘗試在dialog.dismiss()調用後將其更改回正常圖像時,白屏會彈出幾毫秒。雖然圖像設置正確,但我想避免這張白色圖像。我試圖實現GridView.setOnTouchListener,但我只會得到一個白色的屏幕(一些毫秒),並沒有其他操作將被執行(沒有彈出對話框)。

我甚至試圖在ViewHolder類中實現OnTouchListener,雖然它似乎適用於一些問題(更改ACTION_DOWN上的alpha是永久的,所以我不得不重新選擇相同的項目以將alpha恢復爲正常),但setOnItemClickListener根本不起作用。

有人可以幫助我嗎? 在此先感謝!

回答

0

只是對於有同樣問題的人,我使用了TransitionDrawable。在我的imageAdapter,我裝的轉變XML文件:

<?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,我用這個代碼示例:

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

,並執行下一個命令(需要一些延遲) :

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