android 获取相册列表的实现及源码下载(四)

来源:互联网 发布:dt大数据梦工厂 spark 编辑:程序博客网 时间:2024/06/05 14:46

该项目实现的功能如下:
获取手机相册,点击每个相册之后进入该相册的图片列表界面,在图片列表界面可以实现图片多选,然后进入所选择的图片界面,在该界面内可以实现所选图片的上传等功能。
该项目最大特色:
1、获取相册列表,目前网络上面介绍获取相册的项目很少,本文专门讲述相册的获取。
2、使用Android-Universal-Image-Loader集成框架-第三方jar包加载本地图片,熟悉这个jar的开发者肯定不陌生,该jar包十分强大,除了可以获取网络图片,本地图片也是可以的。同时,通过引用第三方jar可以有效解决OOM异常问题。

以上三篇博文的地址如下:
android 获取相册列表的实现及源码下载(一)
android 获取相册列表的实现及源码下载(二)
android 获取相册列表的实现及源码下载(三)

本篇继续上面三篇博文的内容讲述,下面给出在选定的相册里面的图片之后,Activity跳转到所选择的图片的界面,就是把所选择的图片加载到界面当中显示,这样处理方便开发者对所选择的图片进行处理,如上传等可以根据自己的需求进一步开发。
下面给出Activity类的代码:

public class SelectedImagesActivity extends Activity implements OnClickListener{    private GridView gridView;    private TextView back,ok;    private ArrayList<PhotoUpImageItem> arrayList;//存放所选择的图片列表    private SelectedImagesAdapter adapter;//适配器    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.selected_images_grid);        init();        setclickListener();    }    @SuppressWarnings("unchecked")    private void init(){        gridView = (GridView) findViewById(R.id.selected_images_gridv);        back = (TextView) findViewById(R.id.back);        ok = (TextView) findViewById(R.id.sure);        arrayList = (ArrayList<PhotoUpImageItem>) getIntent().getSerializableExtra("selectIma");        adapter = new SelectedImagesAdapter(SelectedImagesActivity.this,                arrayList);        gridView.setAdapter(adapter);    }    private void setclickListener(){        back.setOnClickListener(this);        ok.setOnClickListener(this);        gridView.setOnItemClickListener(new OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view,                    int position, long id) {            }        });    }    @Override    protected void onDestroy() {        super.onDestroy();    }    @Override    public void onClick(View v) {        switch (v.getId()) {        case R.id.back:            finish();            break;        case R.id.sure:            Toast.makeText(SelectedImagesActivity.this,                    "上传等操作,开发者可以自己处理", Toast.LENGTH_LONG).show();            break;        }    }}

Activity类代码很简单,下面给出适配器代码:

public class SelectedImagesAdapter extends BaseAdapter {    private ArrayList<PhotoUpImageItem> arrayList;    private LayoutInflater layoutInflater;    private ImageLoader imageLoader;    private DisplayImageOptions options;    public SelectedImagesAdapter(Context context,ArrayList<PhotoUpImageItem> arrayList){        this.arrayList = arrayList;        layoutInflater = LayoutInflater.from(context);        imageLoader = ImageLoader.getInstance();        // 使用DisplayImageOption.Builder()创建DisplayImageOptions        options = new DisplayImageOptions.Builder()                .showStubImage(R.drawable.album_default_loading_pic)                 // 设置图片下载期间显示的图片                .showImageForEmptyUri(R.drawable.album_default_loading_pic)                 // 设置图片Uri为空或是错误的时候显示的图片                .showImageOnFail(R.drawable.album_default_loading_pic)                 // 设置图片加载或解码过程中发生错误显示的图片                .cacheInMemory(true)                 // 设置下载的图片是否缓存在内存中                .cacheOnDisc(true)                 // 设置下载的图片是否缓存在SD卡中                // .displayer(new RoundedBitmapDisplayer(20))                 // 设置成圆角图片                .bitmapConfig(Config.ARGB_8888)                .imageScaleType(ImageScaleType.IN_SAMPLE_INT)                .build(); // 创建配置过的DisplayImageOption对象    }    @Override    public int getCount() {        return arrayList.size();    }    @Override    public Object getItem(int position) {        return arrayList.get(position);    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        Holder holder;        if (convertView == null) {            convertView = layoutInflater.inflate(R.layout.selected_images_adapter_item, parent, false);            holder = new Holder();            holder.imageView = (ImageView) convertView.findViewById(R.id.selected_image_item);            convertView.setTag(holder);        }else {            holder = (Holder) convertView.getTag();        }        imageLoader.displayImage("file://"+arrayList.get(position).getImagePath(), holder.imageView,                options);        return convertView;    }    class Holder{        ImageView imageView;    }}

适配器代码也很简单,直接使用图片加载器-第三方jar包实现,点击确定按钮开发者可以进行后续的开发工作。
至此整个项目讲述完毕。如果各位朋友有什么疑问或者发现文中有误,请不吝赐教!非常感谢!同时,由于本人水平有限,如果博文中有什么错误的地方,请多多包涵,欢迎批评指正!【握手】

博文链接:
android 获取相册列表的实现及源码下载(一)
android 获取相册列表的实现及源码下载(二)
android 获取相册列表的实现及源码下载(三)

源码下载

2 0
原创粉丝点击