1. 程式人生 > >Android CV系列 > 圖片選擇 嚴大的Ablum

Android CV系列 > 圖片選擇 嚴大的Ablum

1.

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

2.

 //支援多選的安卓相簿
    compile 'com.yanzhenjie:album:2.0.2'
//Glide
    compile 'com.github.bumptech.glide:glide:3.7.0'

3.

   private ImageView image;
    private int ACTIVITY_REQUEST_SELECT_PHOTO=12138;//隨意

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        image.setOnClickListener(this);
    }

    private void initView() {
        image = (ImageView) findViewById(R.id.image);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.image:
                Album.image(MainActivity.this) // 選擇圖片。
                        .multipleChoice()
                        .requestCode(ACTIVITY_REQUEST_SELECT_PHOTO)
                        .camera(true)//有照相機
                        .columnCount(3)//一行三個
                        .selectCount(1)//選擇一個
                        .onResult(new Action<ArrayList<AlbumFile>>() {
                            @Override
                            public void onAction(int requestCode, @NonNull ArrayList<AlbumFile> result) {
                                AlbumFile albumFile = result.get(0);
                                String path = albumFile.getPath();
                                File file=new File(path);
//                                file = CompressHelper.getDefault(mContext).compressToFile(new File(path));
                                try {
                                    Glide.with(MainActivity.this)
                                            .load(file)
                                            .into(image);
                                } catch (Exception e) {
                                    e.printStackTrace();
                                }
                            }
                        })
                        .onCancel(new Action<String>() {
                            @Override
                            public void onAction(int requestCode, @NonNull String result) {

                            }
                        })
                        .start();
                break;
            default:
                break;
        }
    }
}