如何用毕加索随机加载图像

How to randomly load an image with picasso

我想知道是否可以使用 picasso 从数组中加载随机选取的图像?

这是我用来加载我的专辑封面的代码,但我想要实现的是当没有找到专辑封面时,我想显示一个随机图像而不是相同的图像。

private void loadAlbumArt(){

    Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
    Uri albumArtUri = ContentUris.withAppendedId(sArtworkUri, songList.get(songIndex).getAlbumID());

    Picasso.with(getApplicationContext())
            .load(albumArtUri)
            .placeholder(R.drawable.no_album)
            .error(R.drawable.no_album)
            .noFade()
            .resize(500, 0)
            .into(mAlbumArt);

}

提前致谢,

文斯

试试这个:

int[] myImageList = new int[]{R.drawable.img1, R.drawable.img2, R.drawable.img3,
            R.drawable.img4, R.drawable.img5, R.drawable.img6};

    Random random = new Random();
    int randomNumber = random.nextInt(myImageList.length);

    Picasso.with(getApplicationContext())
            .load(albumArtUri)
            .placeholder(R.drawable.no_album)
            .error(myImageList[randomNumber])
            .noFade()
            .resize(500, 0)
            .into(mAlbumArt);

您可以使用此代码

检查专辑封面是否可用,方法如下

 private void loadAlbumArt() {

        Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
        Uri albumArtUri = ContentUris.withAppendedId(sArtworkUri, songList.get(songIndex).getAlbumID());
        if (!albumArtUri.equalsIgnoreCase("")) {
            Picasso.with(getApplicationContext())
                    .load(albumArtUri)
                    .noFade()
                    .resize(500, 0)
                    .into(mAlbumArt);
        } else {
            int[] myImageList = new int[]{R.drawable.img1, R.drawable.img2, R.drawable.img3,
                    R.drawable.img4, R.drawable.img5, R.drawable.img6};

            Random random = new Random();
            int randomNumber = random.nextInt(myImageList.length);

            Picasso.with(getApplicationContext())
                    .load(myImageList[randomNumber])
                    .noFade()
                    .resize(500, 0)
                    .into(mAlbumArt);
        }
    }

现在您可以在专辑封面不可用时显示随机图像

private void loadAlbumArt(){

    Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
    Uri albumArtUri = ContentUris.withAppendedId(sArtworkUri, songList.get(new Random().nextInt(songList.size())).getAlbumID());

    Picasso.with(getApplicationContext())
            .load(albumArtUri)
            .placeholder(R.drawable.no_album)
            .error(R.drawable.no_album)
            .noFade()
            .resize(500, 0)
            .into(mAlbumArt);

}