• 关于网格布局实现图标在上,文字在下的效果


    先看效果图:

    再来点实在的,上代码:

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.myapplication1.MainActivity" >

    <GridView
    android:id="@+id/gridview1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:columnWidth="60dp"
    android:gravity="center"
    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:padding="10dp"
    android:stretchMode="columnWidth"
    android:verticalSpacing="10dp" />

    </LinearLayout>

    items.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@mipmap/logo" />

    <TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView"/>

    </LinearLayout>
    实体类:MyBean.java
    public class MyBean {

    private String iconName;
    private int imageId;

    public MyBean(String iconName, int imageId) {
    super();
    this.iconName = iconName;
    this.imageId = imageId;
    }

    public String getIconName() {
    return iconName;
    }

    public void setIconName(String iconName) {
    this.iconName = iconName;
    }

    public int getImageId() {
    return imageId;
    }

    public void setImageId(int imageId) {
    this.imageId = imageId;
    }
    适配器MyAdapter.java

    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;

    import java.util.ArrayList;

    public class MyAdapter extends BaseAdapter {

    private LayoutInflater mInflater = null;
    private Context mContext;
    private ArrayList<MyBean> mArrayList = null;

    public MyAdapter(Context context, ArrayList<MyBean> arrayList) {
    mContext = context;
    mArrayList = arrayList;
    mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    }

    @Override
    public int getCount() {
    return mArrayList == null ? 0 : mArrayList.size();
    }

    @Override
    public Object getItem(int position) {
    return mArrayList == null ? null : mArrayList.get(position);
    }

    @Override
    public long getItemId(int position) {
    return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder = null;
    MyBean mBean = (MyBean) getItem(position);
    if (convertView == null) {
    convertView = mInflater.from(mContext).inflate(R.layout.items, parent, false);
    holder = new ViewHolder();
    holder.imageView = (ImageView) convertView.findViewById(R.id.imageView1);
    holder.textView = (TextView) convertView.findViewById(R.id.textView1);
    convertView.setTag(holder);
    }else {
    holder = (ViewHolder) convertView.getTag();
    }
    holder.imageView.setImageResource(mBean.getImageId());
    holder.textView.setText(mBean.getIconName());
    return convertView;
    }

    class ViewHolder {
    ImageView imageView;
    TextView textView;
    }
    }

    主活动MainActivity:
    import androidx.appcompat.app.AppCompatActivity;

    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.Button;
    import android.widget.GridView;
    import android.widget.Toast;

    import java.util.ArrayList;

    import com.example.myapplication1.MyAdapter;

    public class MainActivity extends AppCompatActivity implements /*View.OnClickListener,*/ AdapterView.OnItemClickListener {

    private GridView mGridView;

    private ArrayList<MyBean> mArrayList;

    private Button mBtnSelectShow;

    private MyAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mGridView = (GridView) findViewById(R.id.gridview1);
    initdata();
    adapter = new MyAdapter(this,mArrayList);
    setLayout();
    }

    /**
    * 添加数据
    */
    private void initdata() {
    mArrayList = new ArrayList<MyBean>();
    mArrayList.add(new MyBean("我的积分", R.mipmap.score));
    mArrayList.add(new MyBean("积分排名", R.mipmap.rank64x64));
    mArrayList.add(new MyBean("积分奖扣", R.mipmap.addscore64x64));
    mArrayList.add(new MyBean("我的审核", R.mipmap.review64x64));
    mArrayList.add(new MyBean("我的奖票", R.mipmap.gift64x64));
    mArrayList.add(new MyBean("奖扣详情", R.mipmap.detail64x64));
    mArrayList.add(new MyBean("任务闹钟", R.mipmap.schedule64x64));
    mArrayList.add(new MyBean("帮助中心", R.mipmap.help64x64));
    }

    private void setLayout() {
    mGridView = (GridView) findViewById(R.id.gridview1);
    mGridView.setVisibility(View.VISIBLE);
    mGridView.setAdapter(adapter);
    mGridView.setOnItemClickListener(this);
    mGridView.setSelection(0);
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    switch (parent.getId()) {
    case R.id.gridview1 :
    Toast.makeText(MainActivity.this,"gridView" + mArrayList.get(position).getIconName(),Toast.LENGTH_SHORT).show();
    break;
    default:
    break;
    }

    }
    }
     
     
  • 相关阅读:
    java数据类型
    如何判断数组
    git 常用命令
    如何配置 ESLint 工作流
    Lambda表达式和函数式接口
    面向对象(多态与内部类)
    面向对象(封装与继承)
    面相对像(基础)
    break;怎么跳出外部循环
    面向对象(类与对象)
  • 原文地址:https://www.cnblogs.com/jiangzuomeng/p/11956274.html
Copyright © 2020-2023  润新知