android: gridview, как указать параметры макета при использовании виджета - PullRequest
0 голосов
/ 27 октября 2011

В моем gridview я хочу отображать текст поверх каждого изображения. Поэтому в XML я определил относительный макет с одним представлением изображения и представлением текста.

В методе getview адаптера я использую держатель представления с одним представлением изображения и одним представлением текста. Теперь мой вопрос, как установить параметры макета.

код

convertView = mInflater.inflate(R.layout.griditems, null);
        holder = new ViewHolder();
        holder.text1 = (TextView) convertView
                .findViewById(R.id.grid_item_text);
        holder.image = (ImageView) convertView
                .findViewById(R.id.grid_item_image);

........

static class ViewHolder {
    TextView text1;
    ImageView image;

}

xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/GridItem" android:layout_width="wrap_content"
android:layout_height="wrap_content" 
android:gravity="center_horizontal"
android:padding="15dip"
>
<ImageView android:id="@+id/grid_item_image"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:scaleType="fitXY">
</ImageView>
<TextView android:id="@+id/grid_item_text"
    android:layout_width="200dip" android:layout_height="wrap_content"
    android:background="@drawable/labelbg"
    android:layout_alignLeft="@+id/grid_item_image"
    android:layout_alignBottom="@+id/grid_item_image"
    android:textColor="#000000"/>

если я попробую holder.image.setLayoutParams (новый GridView.LayoutParams (200, 200)); это дает исключение. Как установить это. Есть ли возможность установить его в XML-файл, используя некоторые общие ключи, такие как fill_parent

1 Ответ

0 голосов
/ 27 октября 2011

В вашем адаптере Gridview в методе getView используйте следующее:

   View v;
   LayoutInflater li = getLayoutInflater();
   v = li.inflate(R.layout.griditems, null);


    TextView tv = (TextView) v.findViewById(R.id.grid_item_text);
    tv.setText("image number" + position);

    ImageView iv = (ImageView) v.findViewById(R.id.grid_item_image);
    iv.setImageBitmap(bitmap); // what image you want

    return v;

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...