位图加载速度很慢

时间:2017-04-01 12:27:14

标签: android

我使用此方法在列表中加载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秒以上,当我正常删除这一堆代码活动时,有人能告诉我为什么会这样,请告诉我代码怎么做或任何更新

2 个答案:

答案 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中运行此代码。

希望它对你有所帮助。