Android 图片选择器

来源:互联网 发布:刀剑乱舞囚禁play乐乎 编辑:程序博客网 时间:2024/06/12 00:00

本人是Android菜鸟,所有博文都是自己的笔记,供自己工作中使用,以及大众参考,文中多少有借鉴引用的地方,如有不正,欢迎大家指出!

本文Android图片选择器是引用yancy的ImageSelector图片选择器开源框架:点击打开链接


下面贴出正文:

首先在gradle里边申明:

compile 'com.yancy.imageselector:imageselector:1.3.3'
MainActivity代码部分
import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.RecyclerView;import android.util.Log;import android.view.View;import android.widget.Button;import com.yancy.imageselector.ImageConfig;import com.yancy.imageselector.ImageSelector;import com.yancy.imageselector.ImageSelectorActivity;import java.util.ArrayList;import java.util.List;/** * Created by hp on 2017/5/14. */public class MainActivity extends AppCompatActivity {    private Adapter adapter;    private ArrayList<String> path = new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button but = (Button) super.findViewById(R.id.but);        RecyclerView recycler = (RecyclerView) super.findViewById(R.id.recycler);        but.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                ImageConfig imageConfig                        = new ImageConfig.Builder(                        // GlideLoader 可用自己用的缓存库                        new GlideLoader())                        // 如果在 4.4 以上,则修改状态栏颜色 (默认黑色)                        .steepToolBarColor(getResources().getColor(R.color.blue))                        // 标题的背景颜色 (默认黑色)                        .titleBgColor(getResources().getColor(R.color.blue))                        // 提交按钮字体的颜色  (默认白色)                        .titleSubmitTextColor(getResources().getColor(R.color.white))                        // 标题颜色 (默认白色)                        .titleTextColor(getResources().getColor(R.color.white))                        // 开启多选   (默认为多选)  (单选 为 singleSelect)//                        .singleSelect()//                        .crop()                        // 多选时的最大数量   (默认12张)                        .mutiSelectMaxSize(12)                        // 已选择的图片路径                        .pathList(path)                        // 拍照后存放的图片路径(默认 /temp/picture)                        .filePath("/temp/picture")                        // 开启拍照功能 (默认开启)                        .showCamera()                        .requestCode(REQUEST_CODE)                        .build();                ImageSelector.open(MainActivity.this, imageConfig);   // 开启图片选择器            }        });        GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);        recycler.setLayoutManager(gridLayoutManager);        adapter = new Adapter(this, path);        recycler.setAdapter(adapter);    }    public static final int REQUEST_CODE = 1000;    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK && data != null) {            List<String> pathList = data.getStringArrayListExtra(ImageSelectorActivity.EXTRA_RESULT);            for (String path : pathList) {                Log.i("ImagePathList", path);            }            path.clear();            path.addAll(pathList);            adapter.notifyDataSetChanged();        }    }}
GlideLoader代码部分
import android.content.Context;import android.widget.ImageView;import com.bumptech.glide.Glide;/** * Created by hp on 2017/5/14. */public class GlideLoader implements com.yancy.imageselector.ImageLoader {    @Override    public void displayImage(Context context, String path, ImageView imageView) {        Glide.with(context)                .load(path)                .placeholder(com.yancy.imageselector.R.mipmap.imageselector_photo)                .centerCrop()                .into(imageView);    }}
Adapter代码部分
import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import com.bumptech.glide.Glide;import java.util.List;/** * Created by hp on 2017/5/14. */public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder> {    private Context context;    private LayoutInflater mLayoutInflater;    private List<String> result;    private final static String TAG = "Adapter";    public Adapter(Context context, List<String> result) {        mLayoutInflater = LayoutInflater.from(context);        this.context = context;        this.result = result;    }    @Override    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        return new ViewHolder(mLayoutInflater.inflate(R.layout.image, null));    }    @Override    public void onBindViewHolder(ViewHolder holder, int position) {        Glide.with(context)                .load(result.get(position))                .centerCrop()                .into(holder.image);    }    @Override    public int getItemCount() {        return result.size();    }    public class ViewHolder extends RecyclerView.ViewHolder {        ImageView image;        public ViewHolder(View itemView) {            super(itemView);            image = (ImageView) itemView.findViewById(R.id.image);        }    }}
这样就可以进行图库图片的多选了

原创粉丝点击