Gallery与衍生的BaseAdapter容器
2016-03-04 21:14
381 查看
Gallery与衍生的BaseAdapter容器
新建一个继承Activity类的GalleryBaseAdapterActivity,并设置布局文件为:gallerybaseadapter.xml。首先在布局文件中添加一个Gallery。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/root" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Gallery android:id="@+id/gallerybaseadapter_gallery" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> |
package lyx.feng.second; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import java.util.Random; import lyx.feng.simpletextdemo.R; import android.app.Activity; import android.app.AlertDialog; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; import android.widget.LinearLayout; @SuppressWarnings("deprecation") public class GalleryBaseAdapterActivity extends Activity { private LinearLayout root = null; private Gallery gallery = null; private List<Integer> list = new ArrayList<Integer>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.gallerybaseadapter); this.root = (LinearLayout) super .findViewById(R.id.gallerybaseadapter_root); this.gallery = (Gallery) super .findViewById(R.id.gallerybaseadapter_gallery); Field fields[] = R.drawable.class.getDeclaredFields(); for (int i = 0; i < fields.length; i++) { if (fields[i].getName().startsWith("icon_")) { try { list.add(fields[i].getInt(R.drawable.class)); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } this.gallery.setAdapter(new ImageAdapter()); this.gallery.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { root.setBackgroundColor(Color.rgb(new Random().nextInt(255), new Random().nextInt(255), new Random().nextInt(255))); AlertDialog.Builder builder = new AlertDialog.Builder( GalleryBaseAdapterActivity.this); ImageView imageView = new ImageView( GalleryBaseAdapterActivity.this); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setImageResource(list.get(gallery .getSelectedItemPosition())); builder.setView(imageView); builder.create().show(); } }); } private class ImageAdapter extends BaseAdapter { @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView view = new ImageView(GalleryBaseAdapterActivity.this); view.setImageResource(list.get(position)); return view; } } } |
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories