从手机图库中获取随机图片并在视图中显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从手机图库中获取随机图片并在视图中显示相关的知识,希望对你有一定的参考价值。

是否有可能访问电话库,选择随机图像并在视图上显示?即在没有用户干预的情况下完成整个过程,必须选择图像或发送uri等。

谢谢!

答案

以下代码段检索图库的内容,并将每个图像路径放在数组列表中。然后它随机选择ArrayList中的一个路径并作为ImageView的资源

Handler handler = new Handler();

protected int counter = 0;
private ImageView mImageView;
private Bitmap currentBitmap = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.image);
    mImageView = (ImageView) findViewById(R.id.imageView);
    String[] projection = new String[]{
            MediaStore.Images.Media.DATA,
    };

    Uri images = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
    Cursor cur = managedQuery(images,
            projection,
            "",
            null,
            ""
    );

    final ArrayList<String> imagesPath = new ArrayList<String>();
    if (cur.moveToFirst()) {

        int dataColumn = cur.getColumnIndex(
                MediaStore.Images.Media.DATA);
        do {
            imagesPath.add(cur.getString(dataColumn));
        } while (cur.moveToNext());
    }
    cur.close();
    final Random random = new Random();
    final int count = imagesPath.size();
    handler.post(new Runnable() {
        @Override
        public void run() {
            int number = random.nextInt(count);
            String path = imagesPath.get(number);
            if (currentBitmap != null)
                currentBitmap.recycle();
              currentBitmap = BitmapFactory.decodeFile(path);
            mImageView.setImageBitmap(currentBitmap);
            handler.postDelayed(this, 1000);
        }
    });

}

以上是关于从手机图库中获取随机图片并在视图中显示的主要内容,如果未能解决你的问题,请参考以下文章

从图库中获取图像并在 ImageView 中显示

从图库访问图像并在 iOS 应用程序库中显示

如何从图库中的图像中获取(提取)文本并搜索该文本 - Android?

data.getData() 在 OnActvityResult 中返回 null,同时从相机和图库中获取/选择图片

如何从自定义列表视图中获取选定项目并在 toast 消息中打印?

如何从图库中加载图像视图中的图像?