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 中

<?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 回答