日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android知乎多图片选择,知乎开源Matisse图片选择器使用

發(fā)布時間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android知乎多图片选择,知乎开源Matisse图片选择器使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Matisse Github地址

效果預覽

添加依賴

compile 'com.zhihu.android:matisse:0.4.3'

前提必須有以下依賴:

implementation 'com.android.support:appcompat-v7:26.1.0'

implementation 'com.android.support:recyclerview-v7:26.1.0'

implementation 'com.github.bumptech.glide:glide:3.7.0'

其中第一個依賴大家的項目中肯定有的

第二個依賴做項目應該也會用到,引入recyclerview

第三個依賴是圖片加載的依賴,Matisse支持Glide或Picasso作為你的圖片加載引擎,這里用的是Glide

增加權限

布局文件

java文件

public class MainActivity extends AppCompatActivity {

private static final int REQUEST_CODE_CHOOSE = 23;

Button button;

TextView textView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button = findViewById(R.id.button);

textView = findViewById(R.id.textview);

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Matisse.from(MainActivity.this)

.choose(MimeType.allOf())//圖片類型

.countable(true)//true:選中后顯示數(shù)字;false:選中后顯示對號

.maxSelectable(5)//可選的最大數(shù)

.capture(true)//選擇照片時,是否顯示拍照

.captureStrategy(new CaptureStrategy(true, "com.example.xx.fileprovider"))//參數(shù)1 true表示拍照存儲在共有目錄,false表示存儲在私有目錄;參數(shù)2與 AndroidManifest中authorities值相同,用于適配7.0系統(tǒng) 必須設置

.imageEngine(new GlideEngine())//圖片加載引擎

.forResult(REQUEST_CODE_CHOOSE);//

}

});

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == REQUEST_CODE_CHOOSE && resultCode == RESULT_OK) {

Listresult = Matisse.obtainResult(data);

textView.setText(result.toString());

}

}

}

如果不進行拍照的話,到現(xiàn)在位置就可以實現(xiàn)文章開始展示的效果

想要使用拍照功能的話,必須要有一個Fileprovider

在AndroidManifest.xml中application節(jié)點,和activity同級,增加

其中com.example.xx.改為你的包名

在res中新建xml文件夾,增加file_paths_public

其中的file_paths_public的代碼為

做完以上步驟就可以正常使用拍照功能了

常見問題

在使用 Matisse 與 glide 4.0.0 以及 4.0.0 之后的版本過程中,會報錯

由于Glide4.0之后Api的調用方式有了一些更改,所以之前的一些Api調用方式則會出錯。 關于Glide 4.0之后Api調用方式的改動可以參考官方文檔

自定義類MyGlideEngine,仿照類 GlideEngine,重新實現(xiàn) ImageEngine

如下

import com.bumptech.glide.annotation.GlideModule;

import com.bumptech.glide.module.AppGlideModule;

import android.content.Context;

import android.graphics.drawable.Drawable;

import android.net.Uri;

import android.widget.ImageView;

import com.bumptech.glide.Glide;

import com.bumptech.glide.Priority;

import com.zhihu.matisse.engine.ImageEngine;

/**

* {@link ImageEngine} implementation using Glide.

*/

public class MyGlideEngine implements ImageEngine {

@Override

public void loadThumbnail(Context context, int resize, Drawable placeholder, ImageView imageView, Uri uri) {

GlideApp.with(context)

.asBitmap() // some .jpeg files are actually gif

.load(uri)

.override(resize, resize)

.centerCrop()

.into(imageView);

}

@Override

public void loadAnimatedGifThumbnail(Context context, int resize, Drawable placeholder, ImageView imageView,

Uri uri) {

GlideApp.with(context)

.asBitmap()

.load(uri)

.placeholder(placeholder)

.override(resize, resize)

.centerCrop()

.into(imageView);

}

@Override

public void loadImage(Context context, int resizeX, int resizeY, ImageView imageView, Uri uri) {

GlideApp.with(context)

.load(uri)

.override(resizeX, resizeY)

.priority(Priority.HIGH)

.into(imageView);

}

@Override

public void loadAnimatedGifImage(Context context, int resizeX, int resizeY, ImageView imageView, Uri uri) {

GlideApp.with(context)

.load(uri)

.override(resizeX, resizeY)

.priority(Priority.HIGH)

.into(imageView);

}

@Override

public boolean supportAnimatedGif() {

return true;

}

}

使用時改為

.imageEngine(new MyGlideEngine())//圖片加載引擎

關于其中GlideApp的使用

https://blog.csdn.net/u010356768/article/details/83783623

關于Matisse其他文章鏈接

http://blog.csdn.net/qiaoshi96_bk/article/details/76164913

https://www.jianshu.com/p/03567893ac79

總結

以上是生活随笔為你收集整理的android知乎多图片选择,知乎开源Matisse图片选择器使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。