从手机图库中获取随机图片并在视图中显示
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);
}
});
}
以上是关于从手机图库中获取随机图片并在视图中显示的主要内容,如果未能解决你的问题,请参考以下文章
如何从图库中的图像中获取(提取)文本并搜索该文本 - Android?
data.getData() 在 OnActvityResult 中返回 null,同时从相机和图库中获取/选择图片