我有一个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();
答案 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);