GridView的标准写法
来源:互联网 发布:java 函数形参和实参 编辑:程序博客网 时间:2024/06/11 22:06
MainActivity
public class MainActivity extends Activity { private GridView gd; private List<Picture> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); processData(); } private void initView() { gd = (GridView) findViewById(R.id.gd); } private void initData() { list = new ArrayList<Picture>(); // 只能有7张图片,再多就oom了,下次解决图片过多oom的问题 list.add(new Picture(R.drawable.iv1)); list.add(new Picture(R.drawable.iv2)); list.add(new Picture(R.drawable.iv3)); list.add(new Picture(R.drawable.iv4)); list.add(new Picture(R.drawable.iv5)); list.add(new Picture(R.drawable.iv6)); list.add(new Picture(R.drawable.iv7)); } private void processData() { MyAdapter myAdapter = new MyAdapter(getApplication(), list); gd.setAdapter(myAdapter); }}
MyAdapter
public class MyAdapter extends BaseAdapter { private Context context; private List<Picture> list; public MyAdapter(Context context, List list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = new ViewHolder(); if (convertView == null) { // 复用历史缓存对象 convertView = View.inflate(context, R.layout.item_grid, null); } holder.iv_icon = (ImageView) convertView.findViewById(R.id.iv_icon); Picture picture = list.get(position); holder.iv_icon.setBackgroundResource(picture.getRes()); return convertView; } /** * 减少findViewById次数 */ private class ViewHolder { ImageView iv_icon; }}
JavaBean
public class Picture {private int res;public Picture(int res) { super(); this.res = res;}public int getRes() { return res;}public void setRes(int res) { this.res = res;}}
布局文件
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.gridviewDemo.MainActivity" > <GridView android:id="@+id/gd" android:layout_width="match_parent" android:layout_height="wrap_content" android:numColumns="3" > </GridView></RelativeLayout>
item
<?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:gravity="center_horizontal" android:orientation="vertical" > <ImageView android:id="@+id/iv_icon" android:layout_width="100dip" android:layout_height="70dip" android:layout_marginTop="5dip" android:background="@drawable/ic_launcher" /></LinearLayout>
效果
0 0
- GridView的标准写法
- 标准dll的写法
- ListView 的标准写法
- 标准类的写法
- SurfaceView的标准写法
- ListView的标准写法
- ScrollView嵌套GridView,GridView的写法
- Gridview][UpdateCommand的写法要点]
- GridView的RowDataBound事件写法
- GridView 常用的写法格式
- 标准Sql语句的写法
- select 语句的标准写法
- 标准的HTML头部写法
- 标准的HTML头部写法
- 一个pool的写法,标准
- Android Fragment的标准写法
- 自定义Application的标准写法
- Jquery ajax的标准写法
- shell学习第七天----基础正则表达式(BRE)
- cocoStudio: button触摸事件响应
- java对象的内存布局(二):利用sun.misc.Unsafe获取类字段的偏移地址和读取字段的值
- 基于am3358的led跑马灯测试
- 带箭头的曲线(自定义的贝塞尔曲线和首次启动 app的引导界面)
- GridView的标准写法
- 微信支付 V3版
- 学习嵌入式系统可以分为哪几个阶段呢?
- backbone.js 路由 模版 使用示例
- 移动应用界面设计的尺寸设置及规范
- top命令详解
- android沉浸式状态栏和虚拟按键
- MFC中自定义类访问主对话框控件
- script 写在body和head中的区别