Pranav
Pranav

Reputation: 148

Bitmap loading very slow

I'm using this method for loading albumArt in list

 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));
        }

everything is working fine but when i open my activity it takes more then 10 seconds to load the activity and when i remove this bunch of code activity open as normally ,can anyone tell me please why it is happening and please tell me also what to do or any update for code

Upvotes: 0

Views: 1905

Answers (2)

Android Geek
Android Geek

Reputation: 9225

You are trying to make the bitmap from the images from your phone.

I think the images in your phone are too large.

You can use Glide to make Bitmap for your local image.

Glide.with(mContext)
.load(new File(pictureUri.getPath())) // Uri of the picture
.asBitmap().
    into(100, 100). // Width and height
    get();

Remember to run this code within AsyncTask or Thread.

Hope it will helpfull to you.

Upvotes: 0

yogi
yogi

Reputation: 293

Instead of Bitmap I always use glide library(It gives smoothness to app)

So just add it in build.gradle(Module App)

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

code to load image in imageview using glide

 Glide.with(context).load(imagePath).crossFade().diskCacheStrategy(DiskCacheStrategy.ALL).thumbnail(0.5f).into(imageView);

I Hope It will Help You :)

Upvotes: 1

Related Questions