カスタム アダプターを備えた GridView があり、リストから項目を選択すると、セレクターが 1 秒間表示されて消えます。カスタムアダプターが原因だと思い、それとセレクターで遊んでみましたが、役に立ちませんでした。
これが私のアダプターです (「Hello, Views」の Grid View サンプルに基づく):
package shira.android.paintdroid;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
class PaintActionsAdapter extends BaseAdapter
{
private Context context;
private int[] actionsImagesResources;
public PaintActionsAdapter(Context context)
{
if (context==null)
throw new IllegalArgumentException("The context must be non-null!");
this.context=context;
/*actionsImagesResources=context.getResources().getIntArray(R.array.
actions_images);*/
actionsImagesResources=new int[6];
for (int counter=0;counter<actionsImagesResources.length;counter++)
actionsImagesResources[counter]=R.drawable.pencil;
}
public int getCount() { return actionsImagesResources.length; }
public long getItemId(int position)
{ return actionsImagesResources[position]; }
public Object getItem(int position)
{ return actionsImagesResources[position]; }
public View getView(int position,View convertView,ViewGroup parent)
{
ImageView actionImageView;
if (convertView==null)
{
actionImageView=new ImageView(context);
AbsListView.LayoutParams layoutParams=new AbsListView.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.
FILL_PARENT);
actionImageView.setLayoutParams(layoutParams);
//actionImageView.setAlpha(0);
}
else actionImageView=(ImageView)convertView;
actionImageView.setImageResource(actionsImagesResources[position]);
return actionImageView;
}
}
そして、ここにレイアウトがあります:
<GridView android:id="@+id/paint_actions_grid" android:layout_width="0dip"
android:layout_height="fill_parent" android:numColumns="2"
android:layout_weight="0.15" android:drawSelectorOnTop="true"/> <!-- android:background="@color/ui_background_color"/> -->
<!-- android:listSelector="@drawable/actions_list_selector"/> -->
助けてくれてありがとう。
GridView が現在どのように見えるかを示すイメージ キャプチャを次に示します (現時点では、すべての項目に同じイメージがあります)。選択した画像の周りに何らかの色のフレームを描画したいのですが、言ったように、1秒後に消えるオレンジ色の長方形が表示されます。