Android下的Gallery显示技术分析(一)

来源:互联网 发布:python编译器 安卓 编辑:程序博客网 时间:2024/06/11 04:34

Android下使用的比较频繁的用来导航的控件就是Gallery了,这里我们回顾一下如何使得我们的Gallery控件显示一些特效,扩充原有系统Gallery的展现。


设计目标:

扩充系统Gallery功能,使得Gallery能够显示选中效果。


设计思路:

设计2组图片,并且绘制时根据item是否选中来绘制;


步骤:

  1. 扩充构造函数,添加参数:context、两组resource,并且根据传入的resource分别创建2组view;
  2. override getView方法,并且在其中根据是否选中来返回不同的内容;


代码比较简单:

public class GalleryAdapter extends BaseAdapter {private Context context;private View[] views;private View[] views_f;public GalleryAdapter(Context context, int[] resources, int[] resources_f) {super();this.context = context;createViews(resources, resources_f);}private void createViews(int[] resources, int[] resources_f) {views = new View[resources.length];views_f = new View[resources_f.length];for (int i = 0; i < resources.length; i++) {views[i] = createView(resources[i]);}for (int i = 0; i < resources_f.length; i++) {views_f[i] = createView(resources_f[i]);}}private View createView(int resourceId) {Bitmap bm = BitmapFactory.decodeResource(context.getResources(), resourceId);ImageView v = new ImageView(context);v.setImageBitmap(bm);LayoutParams params = new LayoutParams(bm.getWidth(), bm.getHeight());v.setLayoutParams(params);return v;}@Overridepublic int getCount() {return views.length;}@Overridepublic Object getItem(int position) {return views[position];}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {Gallery gly = (Gallery) parent;if (position == gly.getSelectedItemPosition())return views_f[position];return views[position];}}


原创粉丝点击