根据ID获取可绘制图像

时间:2015-10-05 15:53:06

标签: android imageview viewflipper

我有以下代码:

布局:

<ViewFlipper android:id="@+id/viewFlipper"
android:layout_height="fill_parent"
android:layout_width="fill_parent" >

<include layout="@layout/imagen3"/>

<include layout="@layout/imagen2"/>

布局imagen3示例:

    <ImageView
    android:id="@+id/preview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/fondo3"/>

Java:

    Uri imageUri = Uri.parse("android.resource://" + getPackageName()
                    + "/drawable/" + "preview");

我想用imageview的id创建ImageURI。

3 个答案:

答案 0 :(得分:2)

我不认为这是一个好主意,因为drawable在internal storage中,因此另一个应用程序无法访问此内存。

首先,您可以将图片副本复制到external storage

或者甚至更好地创建Content Provider。这是android中共享内容最正确,最安全的方式。例如,查看here

答案 1 :(得分:0)

您可以使用它的ID获取它的R索引(以便您可以使用它)。像这样:

Integer imageIs =  getImageViewResource(R.id.preview)

你可以用它做更多的事情,比如改变图像:

setImageViewResource(R.id.preview, newImage)

为什么你要将它设置为URI作为一个谜......

答案 2 :(得分:0)

问题不在于内部还是外部,因为它与内部图像一起正常工作,问题是我想使用相同的代码来对应每个图像的不同的drawable