- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android UI学习 - GridView和ImageView的使用
GridView: A view that shows items in two-dimensional scrolling grid. The items in the grid come from the ListAdapter associated with this view. 简单说,GridView就是我们资源管理器平常见到的一个个文件的icon显示方式。
?? ?上面提及到了,GridView的Item是来自ListAdapter的,所以一般在Activity的onCreate使用GridView的代码:
@Override?
public?void?onCreate(Bundle?savedInstanceState)?{?
????super.onCreate(savedInstanceState);?
?
????setContentView(R.layout.grid_2);?
?
????GridView?g?=?(GridView)?findViewById(R.id.myGrid);?
????g.setAdapter(new?ImageAdapter(this));?
}?
?? ?而ImageAdapter一般是extends BaseAdapter。BaseAdapter是implements ListAdapter SpinnerAdapter,但很多时候自定义的Adapter都是override ListAdapter的父类Adapter接口里面的方法:
?? ?int ? ? getCount() ? ? ? ? ? ? ? ? ? 获取当前Adapter的Items数目
?? ?Object getItem(int position) ? ? 获取相应position的Item
?? ?long ????getItemId(int position) ?获取相应position的Item在List中的row id
?? ?View ? ?getView(int position, View convertView, ViewGroup parent) 获取在指定position所要显示的data的View
?
?? ?这些方法函数和swing的差不多,都是基于MVC。大概原理过程是这样的:程序需要显示GridView,那么要把data一个一个地显示出来是通过一个for循环,首先call Adapter.getCount()得到有多少个data,然后position++地getItem,getView得到要显示的view,这样子逐一地显示出来!
?
下面是官方sample里面的Photo Grid的例子,本人省略了某些代码:
public?class?ImageAdapter?extends?BaseAdapter?{?
????public?ImageAdapter(Context?c)?{?
????????mContext?=?c;?
????}?
?
????public?int?getCount()?{?
????????return?mThumbIds.length;?
????}?
?
????public?Object?getItem(int?position)?{?
????????return?position;?
????}?
?
????public?long?getItemId(int?position)?{?
????????return?position;?
????}?
?
????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{?
????????ImageView?imageView;?
????????if?(convertView?==?null)?{?
????????????imageView?=?new?ImageView(mContext);?
????????????imageView.setLayoutParams(new?GridView.LayoutParams(45,?45));//设置ImageView宽高?
????????????imageView.setAdjustViewBounds(false);?
????????????imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);?
????????????imageView.setPadding(8,?8,?8,?8);?
????????}?else?{?
????????????imageView?=?(Imag
文档评论(0)