在API29中,不推荐使用MediaStorage.Images.Thumbnails来加载缩略图。相反,可以使用loadThumbnail()方法来加载缩略图。
loadThumbnail()是ContextCompat类中的一个静态方法,用于加载指定URI的缩略图。它接受以下参数:
以下是使用loadThumbnail()方法的示例代码:
import android.content.ContentResolver;
import android.content.Context;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.provider.MediaStore;
import android.support.v4.content.ContextCompat;
public class ThumbnailLoader {
public static Bitmap loadThumbnail(Context context, Uri uri, int width, int height) {
ContentResolver resolver = context.getContentResolver();
Bitmap thumbnail = null;
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
thumbnail = resolver.loadThumbnail(uri, new Size(width, height), null);
} else {
thumbnail = MediaStore.Images.Thumbnails.getThumbnail(resolver, uri, MediaStore.Images.Thumbnails.MINI_KIND, null);
}
} catch (Exception e) {
e.printStackTrace();
}
return thumbnail;
}
}
在上面的示例中,loadThumbnail()方法首先检查设备的API级别。如果设备的API级别大于等于29(Android 10),则使用resolver.loadThumbnail()方法加载缩略图;否则,使用MediaStore.Images.Thumbnails.getThumbnail()方法加载缩略图。
注意:为了使用loadThumbnail()方法,需要在应用程序的build.gradle文件中添加以下依赖项:
implementation 'androidx.core:core:1.6.0'
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云