安卓圖片選擇框架很多,今天介紹幾款常用的
1.Matisse
調用方法
Start MatisseActivity from current Activity or Fragment:
Matisse.from(MainActivity.this)
.choose(MimeType.allOf())
.countable(true)
.maxSelectable(9)
.addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K))
.gridExpectedSize(getResources().getDimensionPixelSize(R.dimen.grid_expected_size))
.restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
.thumbnailScale(0.85f)
.imageEngine(new GlideEngine())
.showPreview(false) // Default is `true`
.forResult(REQUEST_CODE_CHOOSE);
Receive Result
In onActivityResult() callback of the starting Activity or Fragment:
List<Uri> mSelected;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_CHOOSE && resultCode == RESULT_OK) {
mSelected = Matisse.obtainResult(data);
Log.d("Matisse", "mSelected: " + mSelected);
}
}
2.PickPhotoView
調用方法
Initialize PickPhotoView
new PickPhotoView.Builder(MainActivity.this)
.setPickPhotoSize(1) // select image size
.setClickSelectable(true) // click one image immediately close and return image
.setShowCamera(true) // is show camera
.setSpanCount(3) // span count
.setLightStatusBar(true) // lightStatusBar used in Android M or higher
.setStatusBarColor(R.color.white) // statusBar color
.setToolbarColor(R.color.white) // toolbar color
.setToolbarTextColor(R.color.black) // toolbar text color
.setSelectIconColor(R.color.pink) // select icon color
.setShowGif(false) // is show gif
.start();
onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == 0){
return;
}
if(data == null){
return;
}
if (requestCode == PickConfig.PICK_PHOTO_DATA) {
ArrayList<String> selectPaths = (ArrayList<String>) data.getSerializableExtra(PickConfig.INTENT_IMG_LIST_SELECT);
// do something u want
}
}