0

我的 XML 代码中有一个ImageView,我希望我的应用程序打开它,ImageView里面装满了我画廊中的一张图像(我没有选择一个)。

我也希望这适用于任何安卓手机(或大多数手机)。

我正在尝试这样的事情。

principalActivity_iv_UltimaFoto = (ImageView) findViewById(R.id.principalActivity_iv_UltimaFoto);
File imagensGaleria = new File(Environment.getExternalStorageDirectory().getPath());
File[] listaImagens = imagensGaleria.listFiles();
principalActivity_iv_UltimaFoto.setImageURI(Uri.parse(listaImagens[0].toString()));

谢谢。

4

1 回答 1

0

行。最后我解决了我的问题。

首先,我创建一个光标并获取我的画廊手机中的所有图像并获取我拍摄的最后一张照片。

Cursor cursor = pickLastPhotoAlbum();

将光标移动到第一行后,获取光标返回的行数并创建一个 Drawable。

cursor.moveToFirst();
int qtd = cursor.getCount();
Drawable backgroundGaleria;

第三,我做了一个 if 来查看我的光标是否为空。

如果为空,我会在我的 imgs 文件夹中获得一个可绘制的图像。

如果不为空,我将获取图像的路径,从路径设置我的可绘制对象并使用此可绘制对象设置我的 ImageView 的背景。

if (qtd > 0){
    String imageGallery = Environment.getExternalStorageDirectory()+ "/Tubagram/" + cursor.getString(1)+".png";
    backgroundGaleria = Drawable.createFromPath(imageGallery);
    principalActivity_iv_UltimaFoto.setBackground(backgroundGaleria);
}else{
    principalActivity_iv_UltimaFoto.setBackgroundResource(R.drawable.box_imagem_album);
}

为了图像不会溢出他的大小,您需要使用 XXXdp 设置宽度和高度(我设置了最小值、正常大小和最大值)。

android:layout_width="61dp"
android:layout_height="42dp"

这是将值返回给我的光标的方法

private Cursor pickLastPhotoAlbum(){
    final ContentResolver cr = getContentResolver();
final String[] p1 = new String[] {
    MediaStore.Images.ImageColumns._ID,
    MediaStore.Images.ImageColumns.TITLE,
    MediaStore.Images.ImageColumns.DATE_TAKEN
};
Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1] + " DESC");

if (c1.moveToFirst() ) {
    Log.i("Teste", "last picture (" + c1.getString(1) + ") taken on: " + new Date(c1.getLong(2)));
}

    Log.i("Caminho download imagem", "file://"+Environment.getExternalStorageDirectory()+ "/Tubagram/"  + c1.getString(1) + ".png");

return c1;
}

感谢所有帮助我的人。

于 2013-06-05T06:05:53.800 回答