2011-07-05 9 views
2

ギャラリーには一連の画像が表示されています。ユーザーが1つをクリックすると、別のビューに移動します。 ビューを変更する直前に、クリックを実行したときにユーザーにフィードバックを与えたいと思います。Androidのギャラリーで画像をドラッグしているときにセレクタを避ける方法

私は、このようにセレクタを定義した:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/pic_frame_pressed" /> 
    <item android:drawable="@drawable/pic_frame" /> <!-- default --> 
</selector> 

これは動作します。ユーザーがギャラリーの画像をクリックすると、フレームが表示されます...

しかし、ユーザーが画像を使ってギャラリーを前後にドラッグしているときにも表示されます。

私は、セレクタのために見つけることができるさまざまな状態を見て:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:color="hex_color" 
     android:state_pressed=["true" | "false"] 
     android:state_focused=["true" | "false"] 
     android:state_selected=["true" | "false"] 
     android:state_checkable=["true" | "false"] 
     android:state_checked=["true" | "false"] 
     android:state_enabled=["true" | "false"] 
     android:state_window_focused=["true" | "false"] /> 
</selector> 

と私はそれらを試してみましたが、ユーザーが画像をクリックしたときのみ(例えば「選択」火力の組み合わせを見つけることができませんでした常に
は、私が見つけた唯一の解決策は、処理することです 私はここに同じような状況に直面している...私は「state_clicked」のようなものを必要とするギャラリーの中央にある画像)

ため

+0

あなたが行くと、あなたの前の質問中にいくつかの答えを受け入れる必要がありますあなたはこれについての答えを待つ。 – Marmoy

答えて

4

を発射しますバックグラウンドウントは、(:/エレガントではありません):OnItemClickイベントに自分自身を切り替える

  mGallery.setOnItemClickListener(new OnItemClickListener(){ 
      @Override 
      public void onItemClick(AdapterView<?> parent, View clickedView, int position, long id) { 
       for(int i = 0; i < parent.getChildCount(); i++){ 
        parent.getChildAt(i).setBackgroundResource(R.drawable.bg_menu); 
        ((TextView) parent.getChildAt(i)).setTextColor(getResources().getColor(R.color.white)); 
       } 
       clickedView.setBackgroundResource(R.drawable.bg_menu_selected); 
       ((TextView) clickedView).setTextColor(getResources().getColor(R.color.dark_blue)); 
       ((SectionAdapter) mGallery.getAdapter()).setSelected(position); 
      } 
     }); 

、彼らが再描画されたときに、私は正しいレイアウトでアイテムを表示するために私のアダプタの選択位置を保存見ることができるように誰もがそれを得た場合、私は聞いて喜んだろう、私は本当に別の解決策を見つけたい
(フォーカスを失う)が、私はまだ

ください:D

関連する問題