安卓圖片\視頻選擇庫

安卓圖片選擇框架很多,今天介紹幾款常用的

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
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章