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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

Matisse Github地址

效果預(yù)覽

添加依賴

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'

其中第一個(gè)依賴大家的項(xiàng)目中肯定有的

第二個(gè)依賴做項(xiàng)目應(yīng)該也會(huì)用到,引入recyclerview

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

增加權(quán)限

布局文件

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:選中后顯示對(duì)號(hào)

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

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

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

.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());

}

}

}

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

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

在AndroidManifest.xml中application節(jié)點(diǎn),和activity同級(jí),增加

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

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

其中的file_paths_public的代碼為

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

常見(jiàn)問(wèn)題

在使用 Matisse 與 glide 4.0.0 以及 4.0.0 之后的版本過(guò)程中,會(huì)報(bào)錯(cuò)

由于Glide4.0之后Api的調(diào)用方式有了一些更改,所以之前的一些Api調(diào)用方式則會(huì)出錯(cuò)。 關(guān)于Glide 4.0之后Api調(diào)用方式的改動(dòng)可以參考官方文檔

自定義類MyGlideEngine,仿照類 GlideEngine,重新實(shí)現(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;

}

}

使用時(shí)改為

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

關(guān)于其中GlideApp的使用

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

關(guān)于Matisse其他文章鏈接

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

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

總結(jié)

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

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