我使用此方法在列表中加载albumArt
long thisAlbum = musicCursor.getLong(albumColumn);
Bitmap artWork = null;
Uri sArtworkUri = Uri
.parse("content://media/external/audio/albumart");
Uri albumArtUri = ContentUris.withAppendedId(sArtworkUri, thisAlbum);
try {
artWork = MediaStore.Images.Media.getBitmap(
musicResolver, albumArtUri);
artWork = Bitmap.createScaledBitmap(artWork, 150, 150, true);
} catch (FileNotFoundException exception) {
exception.printStackTrace();
artWork = BitmapFactory.decodeResource(getResources(),
R.drawable.no_cover);
} catch (IOException e) {
e.printStackTrace();
}
songsList.add(new Songs(thisId, thisTitle, thisArtist, artWork));
}
一切正常,但是当我打开我的活动时,加载活动需要10秒以上,当我正常删除这一堆代码活动时,有人能告诉我为什么会这样,请告诉我代码怎么做或任何更新
答案 0 :(得分:1)
而不是Bitmap我总是使用滑动库(它为应用程序提供平滑性)
所以只需将它添加到build.gradle(模块应用程序)
compile 'com.github.bumptech.glide:glide:3.7.0
使用滑行在imageview中加载图片的代码
Glide.with(context).load(imagePath).crossFade().diskCacheStrategy(DiskCacheStrategy.ALL).thumbnail(0.5f).into(imageView);
我希望它会帮助你:))
答案 1 :(得分:0)
您正尝试从手机中的图像制作位图。
我认为手机中的图片太大了。
您可以使用Glide为您的本地图像制作位图。
Glide.with(mContext)
.load(new File(pictureUri.getPath())) // Uri of the picture
.asBitmap().
into(100, 100). // Width and height
get();
请记住在AsyncTask或Thread中运行此代码。
希望它对你有所帮助。