从imageview获取图像路径?

时间:2015-02-13 17:18:59

标签: android android-imageview

我有一个ImageView,我希望获得图片路径并添加String。我想这样做因为我需要将它发送到我的webservice,就像默认图像一样

我该怎么做?

ImageView的

<ImageView
    android:id="@+id/ivPerfil"
    android:padding="5dp"
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:src="@drawable/icon_usuario"
    android:scaleType="fitXY"
    />

获取路径

ivPerfil = (ImageView)findViewById(R.id.ivPerfil);
Drawable img = getResources().getDrawable(R.drawable.icon_usuario);
String pathImage = img.toString();

2 个答案:

答案 0 :(得分:7)

您无法直接获取ImageView引用的图像的路径,但有一些解决方法。

由于您在设置图像时清楚地知道图像的路径(因为您无法在不知情的情况下进行设置),您可以选择设置View's标记(技术上可以是任何标记) Object)。

在这种情况下,它只是你要存储的String

所以,假设你有:

Uri imageFilePath = Uri.parse("some/path/to/file.png");

现在,在ImageView上设置图片Uri时,请在之后添加以设置其标记:

imageView.setTag(imageFilePath.toString());

然后,当您真正要将其发送到服务器时,只需调用getTag()上的ImageView方法,即可获得正确的文件位置。

e.g。

String path = imageView.getTag().toString();

如果图像来自您的资产,您将不得不从资源构建适当的路径(请参阅此页面上的miselking的答案,了解如何执行此操作)。

答案 1 :(得分:4)

你可以试试这个:

    Uri path = Uri.parse("android.resource://your.package.name/" + R.drawable.icon_usuario);
    String imgPath = path.toString();

&#34; your.package.name&#34;是你的包的名称(即:com.example.mypackage)

您可以在Android中使用此路径:

ivPerfil = (ImageView)findViewById(R.id.ivPerfil);
ivPerfil.setImageURI(path);