Fer*_*iva 1 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"
/>
Run Code Online (Sandbox Code Playgroud)
走这条路
ivPerfil = (ImageView)findViewById(R.id.ivPerfil);
Drawable img = getResources().getDrawable(R.drawable.icon_usuario);
String pathImage = img.toString();
Run Code Online (Sandbox Code Playgroud)
你不能直接获得由它引用的图像的路径ImageView,但是它有一些方法.
由于您在设置图像时清楚地知道图像的路径(因为您无法在不知情的情况下进行设置),您可以选择设置View's标记(技术上可以是任意标记Object).
在这种情况下,它只是String你想要存储的.
所以,假设你有:
Uri imageFilePath = Uri.parse("some/path/to/file.png");
Run Code Online (Sandbox Code Playgroud)
现在,在设置图像Uri时,在ImageView添加之后设置其标记:
imageView.setTag(imageFilePath.toString());
Run Code Online (Sandbox Code Playgroud)
然后,当您实际将其发送到服务器时,只需getTag()在您的方法上调用该方法ImageView,您将获得正确的文件位置.
例如
String path = imageView.getTag().toString();
Run Code Online (Sandbox Code Playgroud)
但是,如果图像来自您的资产,则您将不得不从资源构建适当的路径(有关如何执行此操作,请参阅此页面上的miselking的答案).
你可以试试这个:
Uri path = Uri.parse("android.resource://your.package.name/" + R.drawable.icon_usuario);
String imgPath = path.toString();
Run Code Online (Sandbox Code Playgroud)
“your.package.name”是您的包的名称(即:com.example.mypackage)
你可以在 android 中使用这个路径,如下所示:
ivPerfil = (ImageView)findViewById(R.id.ivPerfil);
ivPerfil.setImageURI(path);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19860 次 |
| 最近记录: |