在网上找了好久似乎都没有关于这方面的(可能是自己的信息量太小吧),于是自己来填补这个漏洞吧。

常见的方法莫过于自己定义一个数组,用以存储图片的引用,如:

private Integer[] pictures = {          R.drawable.icon1,          R.drawable.icon2,          R.drawable.icon3,          R.drawable.icon4,          R.drawable.icon5  };
然后再将此数组加入到适配器中。但是想要显示自己的图片,这怎么行。。下面来介绍我自己的方法


首先,你得知道你图片的存储路径,将这些你将要显示的图片的路径存放于一个arraylist里面

ArrayList<String> PictureNameList = new ArrayList<String>(); PicureNameList.add("路径");  ...  ...
然后获取gallery实例,

Gallery g = (Gallery) findViewById(R.id.mygallery);
相应的mygallery.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >  <!-- 建立一個  Gallery -->   <Gallery    android:id="@+id/mygallery"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:layout_x="12px"  android:layout_y="106px"    />     </LinearLayout>

并加入到适配器里面

g.setAdapter(new ImageAdapter(this,PictureNameList));        /*设定一个itemclickListener事件*/        g.setOnItemClickListener(new OnItemClickListener()         {          public void onItemClick(AdapterView<?> parent,                            View v, int position, long id)           {            //这里就根据你自己的需要去做一些功能的展示          }        });
下面就来看这个ImageAdaper实现

public class ImageAdapter extends BaseAdapter     {      /*声明变量*/      int mGalleryItemBackground;      private Context mContext;      private List<String> lis;            /*ImageAdapter的构造符*/      public ImageAdapter(Context c,List<String> li)       {        mContext = c;        lis=li;        /* 使用res/values/attrs.xml中的<declare-styleable>定义        * 的Gallery属性.*/        TypedArray a = obtainStyledAttributes(R.styleable.Gallery);        /*取得Gallery属性的Index id*/        mGalleryItemBackground = a.getResourceId(            R.styleable.Gallery_android_galleryItemBackground, 0);        /*让对象的styleable属性能够反复使用*/         a.recycle();      }            /*几定要重写的方法getCount,传回图片数目*/      public int getCount()       {        return lis.size();      }            /*一定要重写的方法getItem,传回position*/      public Object getItem(int position)       {        return position;      }            /*一定要重写的方法getItemId,传并position*/      public long getItemId(int position)       {        return position;      }            /*几定要重写的方法getView,传并几View对象*/      public View getView(int position, View convertView,                             ViewGroup parent)       {        /*产生ImageView对象*/        ImageView i = new ImageView(mContext);        /*设定图片给imageView对象*/        Bitmap bm = BitmapFactory.decodeFile(lis.                              get(position).toString());        i.setImageBitmap(bm);        /*重新设定图片的宽高*/        i.setScaleType(ImageView.ScaleType.FIT_XY);        /*重新设定Layout的宽高*/        i.setLayoutParams(new Gallery.LayoutParams(200, 120));        /*设定Gallery背景图*/        i.setBackgroundResource(mGalleryItemBackground);        /*传回imageView对象*/        return i;      }         }   }

其中只需要关注最后一个getView函数,这个函数的关键就在于其中两行

Bitmap bm = BitmapFactory.decodeFile(lis.                              get(position).toString());        i.setImageBitmap(bm);
获取图片并显示图片。ok!

记得在values文件下里面添加一个叫做attrs.xml的文件

<?xml version="1.0" encoding="utf-8"?><resources>  <declare-styleable name="Gallery">    <attr name="android:galleryItemBackground" />  </declare-styleable> </resources>
最后还要记得在配置文件中添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />



更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. android上一些方法的区别和用法的注意事项
  5. android实现字体闪烁动画的方法
  6. Android(安卓)matrix 控制图片的旋转、缩放、移动
  7. Android中dispatchDraw分析
  8. Android四大基本组件介绍与生命周期
  9. Android(安卓)MediaPlayer 常用方法介绍

随机推荐

  1. android中使用sqlite、复制assets下的数
  2. Android快速入门
  3. Android中EditText 的setInputType以及se
  4. Android(安卓)搜索框:SearchView 的属性和
  5. Android进行设备管理(针对企业开发)
  6. Android(安卓)自定义TextView 实现文本间
  7. 解决:Android(安卓)Android(安卓)requires
  8. Android上运行本地c
  9. Android(安卓)屏幕旋转 处理 AsyncTask
  10. Android: NDK编程入门笔记