0

gridviewadapter を組み込んだレイアウトがあります。gridview レイアウトには、単一の画像ビューが含まれています。

画像ビューでスケールを設定するまで、スクロールして項目を選択できます。イメージビューをスケーリングするとすぐに、スクロールは機能しますが、アイテムを選択できません (画面をランダムにタップすると、変更イベントがトリガーされることがありますが、非常にランダムに表示されます)。

これは私の GridViewAdapted getView コードです:

public View getView(int position, View convertView, ViewGroup parent) 
{
    // TODO Auto-generated method stub
    ViewHolder view;
    LayoutInflater inflator = activity.getLayoutInflater();

    if(convertView==null)
    {
        view = new ViewHolder();
        convertView = inflator.inflate(R.layout.grid_item, null);

        view.imgLetter = (ImageView) convertView.findViewById(R.id.GridImage);


        convertView.setTag(view);
    }
    else
    {
        view = (ViewHolder) convertView.getTag();
    }
    view.imgLetter.setBackground(letters.get(position).getDrawable(view.imgLetter.getContext()));

    //as soon as these two lines are added, it becomes 
    //impossible to select an item in my grid view!
    view.imgLetter.setScaleX((float)0.5);
    view.imgLetter.setScaleY((float)0.5);         
    return convertView;


}

そして、ここに私の GridItem.xml があります

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/GridImage"
android:gravity="center"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />

XML ファイルで縮尺を設定すると、同じ動作が発生します。

4

2 に答える 2

0

私自身のコードでは、MyAdapter extends BaseAdapter. 同様のことをしている場合は、画像をスケーリングした後に呼び出してみてください

notifyDataSetChanged();

BaseAdapterを参照してください。

于 2013-09-27T08:07:52.513 に答える
0

答えは、GridItem.xml の LinearLayout で imageview をラップすることでした。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ImageView 
    android:id="@+id/GridImage"
    android:gravity="center"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />
</LinearLayout>
于 2013-09-28T01:41:41.933 に答える