Java教程

网格视图GridView

本文主要是介绍网格视图GridView,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

首先建立gridViewActivity的Java文件

 1 public class GridViewActivity extends AppCompatActivity {
 2     private GridView GV;
 3     @Override
 4     protected void onCreate(@Nullable Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_gridview);
 7         GV=findViewById(R.id.gv);
 8         GV.setAdapter(new MygridAdapter(GridViewActivity.this));//为gridview设置适配器
 9         GV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
10             @Override
11             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
12                 Toast.makeText(GridViewActivity.this, "点击位置:"+i, Toast.LENGTH_SHORT).show();
13             }
14         });
15         GV.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
16             @Override
17             public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
18                 Toast.makeText(GridViewActivity.this, "长按位置:"+i, Toast.LENGTH_SHORT).show();
19                 return true;//这里如果返回false的话,处理完长按事件后还会处理点击事件,也就是说会弹出两个提示框,为了让他只显示一个对话框改为true
20                 //即处理完该事件后不会再处理其他事件,结束
21             }
22         });
23     }
24 }

然后建立activity_gridview.xml文件

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent"
 4     android:orientation="vertical"
 5     android:padding="15dp">
 6     <GridView
 7         android:id="@+id/gv"
 8         android:layout_width="match_parent"
 9         android:layout_height="wrap_content"
10         android:numColumns="3"
11         android:horizontalSpacing="10dp"
12         android:verticalSpacing="10dp"/>
13         <!--numColumns代表列数,horizontalSpacing是水平距离,verticalSpacing是垂直距离-->
14 
15 </LinearLayout>

 

建立适配器MygridAdapter的Java文件

 1 public class MygridAdapter extends BaseAdapter {
 2     private Context gContext;
 3     private LayoutInflater gLayoutInflater;
 4     public MygridAdapter(Context context){
 5         this.gContext=context;
 6         gLayoutInflater=LayoutInflater.from(context);
 7     }
 8 
 9     @Override
10     public int getCount() {
11         return 9;
12     }//设置数量是多少
13 
14     @Override
15     public Object getItem(int i) {
16         return null;
17     }
18 
19     @Override
20     public long getItemId(int i) {
21         return 0;
22     }
23 
24     static class ViewHolder{
25         public ImageView imageview;
26         public TextView textView;
27     }
28 
29     @Override
30     public View getView(int i, View view, ViewGroup viewGroup) {
31         ViewHolder holder=null;
32         if(view==null){
33             view=gLayoutInflater.inflate(R.layout.layout_grid_item,null);
34             holder=new ViewHolder();
35             holder.imageview=view.findViewById(R.id.imv_grid);
36             holder.textView=view.findViewById(R.id.tv_timu);
37             view.setTag(holder);
38         }else{
39             holder= (ViewHolder) view.getTag();
40         }
41         //对控件赋值
42         holder.textView.setText("我的女神!!!");
43         Glide.with(gContext).load("https://img0.baidu.com/it/u=1038436406,198337591&fm=253&fmt=auto&app=138&f=JPEG?w=400&h=711").into(holder.imageview);
44         return view;
45     }
46 }

然后建立单个文件的样式,layout_grid_item.xml文件

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent"
 4     android:orientation="vertical"
 5     android:gravity="center_horizontal">
 6     <ImageView
 7         android:id="@+id/imv_grid"
 8         android:layout_width="match_parent"
 9         android:layout_height="100dp"
10         android:scaleType="centerCrop"
11         android:background="@color/black"/>
12     <TextView
13         android:id="@+id/tv_timu"
14         android:layout_width="match_parent"
15         android:layout_height="wrap_content"
16         android:text="好吧,又是我"
17         android:textColor="@color/purple_500"
18         android:gravity="center"
19         android:layout_marginTop="10dp"/>
20 
21 </LinearLayout>

最后注意要在AndroidMainfest.xml文件中添加activity_gridview.xml

这篇关于网格视图GridView的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!