创建具有可点击图像的Gridview,Android

创建具有可点击图像的Gridview,Android,android,android-layout,gridview,android-gridview,Android,Android Layout,Gridview,Android Gridview,我想创建一个具有可单击图像的gridview 单击图像时,相应的值将显示在网格视图下方 我面临的问题是在设计部分,我不知道如何设计这样的网格视图。。每次我尝试这样做,都会得到一些不好的结果。。 到目前为止,我还没有android ui设计经验 请帮忙 我希望它能帮助你 GridView是一个视图组,在二维可滚动网格中显示项目。使用ListAdapter将网格项自动插入到布局中 有关如何使用适配器动态插入视图的介绍,请阅读带有适配器的建筑布局 这些都是很好的GridView教程将帮助您 及

我想创建一个具有可单击图像的gridview

单击图像时,相应的值将显示在网格视图下方

我面临的问题是在设计部分,我不知道如何设计这样的网格视图。。每次我尝试这样做,都会得到一些不好的结果。。 到目前为止,我还没有android ui设计经验

请帮忙

我希望它能帮助你


GridView
是一个
视图组
,在二维可滚动网格中显示项目。使用
ListAdapter
将网格项自动插入到布局中

有关如何使用适配器动态插入视图的介绍,请阅读带有适配器的建筑布局

这些都是很好的
GridView
教程将帮助您

试试这个
  • 主要活动

    public class MainActivity extends AppCompatActivity {
     List<String> list;
       int[] imageId = {
        R.drawable.a,
        R.drawable.b,
        R.drawable.c,
        R.drawable.d,
        R.drawable.e,
        R.drawable.f,
         };
          String[] web = {
        "Google",
        "Github",
        "Instagram",
        "Facebook",
        "Flickr",
        "Pinterest",
        "Quora",
        "Twitter",
        "Vimeo",
        "WordPress",
        "Youtube",
        "Stumbleupon",
        "SoundCloud",
        "Reddit",
        "Blogger"
    
        } ;
       @Override
       protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       ImageAdapter adapter = new ImageAdapter(MainActivity.this,web, 
       imageId);
        GridView grid=(GridView)findViewById(R.id.grid_view);
       grid.setAdapter(adapter);
      grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    
        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
        }
    });
    
     }
     }
    
  • 网格布局

    <?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"
      android:padding="5dp" >
    <ImageView
      android:id="@+id/grid_item_image"
      android:layout_width="100dp"
      android:layout_height="100dp"
      android:layout_marginRight="10dp"
      >
     </ImageView>
     <TextView
        android:id="@+id/grid_item_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+id/label"
        android:layout_marginTop="5px"
        android:textSize="15px" >
       </TextView>
    
       </LinearLayout> 
    
    
    
  • 请参阅此链接
    public class ImageAdapter extends BaseAdapter
    {
     private Context mContext;
     private final int[] Imageid;
     private final String[] web;
        public ImageAdapter(Context c,String[] web,int[] Imageid )
      {
       mContext = c;
       this.Imageid = Imageid;
         this.web=web;
    }
    
    @Override
    public int getCount()
    {
         return Imageid.length;
     }
    @Override
     public Object getItem(int position)
    {
         return position;
      }
      @Override
     public long getItemId(int position)
    {
        return 0;
       }
     @Override
     public View getView(int position, View convertView, ViewGroup 
       parent)
      {
         LayoutInflater inflater = (LayoutInflater) 
          mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
          View gridView;
          if (convertView == null)
          {
             gridView = new View(mContext);
             // get layout from mobile.xml
             gridView = inflater.inflate(R.layout.grid_layout, null);
            // set value into textview
            TextView textView = (TextView) 
            gridView.findViewById(R.id.grid_item_label);
            textView.setText(web[position]);
           // set image based on selected text
           ImageView imageView = (ImageView) 
           gridView.findViewById(R.id.grid_item_image);
           imageView.setImageResource(Imageid[position]);
       }
       else
     {
          gridView = (View) convertView;
     }
        return gridView;
     }
    }
    
    <?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"
      android:padding="5dp" >
    <ImageView
      android:id="@+id/grid_item_image"
      android:layout_width="100dp"
      android:layout_height="100dp"
      android:layout_marginRight="10dp"
      >
     </ImageView>
     <TextView
        android:id="@+id/grid_item_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+id/label"
        android:layout_marginTop="5px"
        android:textSize="15px" >
       </TextView>
    
       </LinearLayout>