GridView+BaseAdapter

版权声明: https://blog.csdn.net/lyw_321/article/details/79728385

GridView+BaseAdapter相比GridView+SimpleAdapter可以较为自由的设置图片和文字


layout-grid_item:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">gravity:center 居中

    <ImageView
        android:id="@+id/image_menu"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@mipmap/ic_launcher"/>

    <TextView
        android:id="@+id/text_menu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="菜单"/>

</LinearLayout>

layout-activity_main:

    <GridView
        android:id="@+id/my_gv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:verticalSpacing="20dp"
        android:numColumns="3">numColumns:3列,verticalSpacing:行间距

    </GridView>

MainActivity:

public class MainActivity extends AppCompatActivity {

    List<MenuItem>datalist;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        GridView gridView=(GridView)findViewById(R.id.my_gv);

        datalist=new ArrayList<>();

        datalist.add(new MenuItem("菜单1",R.drawable.ic_launcher));
        datalist.add(new MenuItem("菜单2",R.drawable.ic_launcher));
        datalist.add(new MenuItem("菜单3",R.drawable.ic_launcher));
        datalist.add(new MenuItem("菜单4",R.drawable.ic_launcher));
        datalist.add(new MenuItem("菜单5",R.drawable.ic_launcher));

        MenuAdapter menuAdapter=new MenuAdapter();

        gridView.setAdapter(menuAdapter);

    }

    class MenuAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            return datalist.size();
        }

        @Override
        public Object getItem(int i) {
            return datalist.get(i);
        }

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

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {

            View menuView= LayoutInflater.from(MainActivity.this).inflate(R.layout.grid_item,null);

            TextView textView=(TextView)menuView.findViewById(R.id.text_menu);
            textView.setText(datalist.get(i).MenuName.toString());

            ImageView imageView=(ImageView)menuView.findViewById(R.id.image_menu);
            imageView.setImageResource(datalist.get(i).MenuDrawableId);


            return menuView;
        }
    }


    class MenuItem{
        String MenuName;
        int MenuDrawableId;
        MenuItem(String MenuName,int MenuDrawableId){
            this.MenuName=MenuName;
            this.MenuDrawableId=MenuDrawableId;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/lyw_321/article/details/79728385
今日推荐