Динамическое добавление элементов сетки в виде сетки - PullRequest
5 голосов
/ 05 мая 2011

Как я могу динамически добавлять элементы сетки в виде сетки?В настоящее время у меня есть адаптер, содержащий мои изображения.Я хочу получить мои изображения с URL-адреса и динамически добавить их в сетку.

1 Ответ

2 голосов
/ 05 мая 2011

Создать пользовательский адаптер для вида сетки. И установите этот пользовательский адаптер для Gird View. Вот код xml для элемента сетки.

    <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/GridItem"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content">

       <imageview android:id="@+id/grid_item_image"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content">
       </imageview>
    </linearlayout>

а вот xml для основного макета.

    <gridview xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/GridView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    </gridview>

и вот пользовательский класс адаптера, который расширяется от BaseAdapter

    public class ImageAdapter extends BaseAdapter
    {
    Context context;

  public ImageAdapter(Context context)
  {
     context = context;
  }

  @Override
  public int getCount() 
  {
     //return numbers of element u want on the grid
     return 9;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) 
  {
     View v = convertView;

     if ( convertView == null )
     {
        //here we inflat the layout
        LayoutInflater li = getLayoutInflater();
        v = li.inflate(R.layout.grid_item, null);

        //here add the image      
        ImageView iv = (ImageView)v.findViewById(R.id.grid_item_image);
        iv.setImageResource(R.drawable.icon);
     }

     return v;
  }

  @Override
  public Object getItem(int arg0) {
     // TODO Auto-generated method stub
     return null;
  }

  @Override
  public long getItemId(int arg0) {
     // TODO Auto-generated method stub
     return 0;
  }
  }

Надеюсь, это поможет вам.

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