如何从 ImageView 获取 Uri 路径?
How to get the Uri path from a ImageView?
我正在尝试创建壁纸应用程序。图片均来自网络
在设置为背景之前,我需要裁剪图像。为此,我使用了一个名为 AndroidImageCropper 的 API。 API 需要一个 URI 对象来执行裁剪。
如何从 ImageView 获取 Uri?因为我的图片来自网络。图像不在可绘制文件夹中。我很困惑。也许你们可以帮助我。
public class MainActivity extends AppCompatActivity {
private NetworkImageView imageView;
private Uri mCropImageUri;
public static final String URL_PHOTO = "http://cdn.wonderfulengineering.com/wp-content/uploads/2016/02/iron-man-wallpaper-42-610x1084.jpg";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (NetworkImageView) findViewById(R.id.image_view);
// Singleton for Volley API, Load image from internet
ImageLoader loader = MySingleton.getInstance(this).getImageLoader();
loader.get(URL_PHOTO, ImageLoader.getImageListener(imageView, R.drawable.temp_picture, android.R.drawable.ic_dialog_alert));
imageView.setImageUrl(URL_PHOTO, loader);
// Put the image on URI object
// #################################
// ### mCropImageUri = <-- ###
// #################################
}
// Action for my button
public void cropImage(View view) {
// API to crop an image
CropImage.activity(mCropImageUri)
.start(this);
}
}
你对我有什么建议吗?
谢谢
所以您正在使用 Volley?我对 Volley 不是很熟悉,只是我的一些想法。
图像下载到Android设备后,尝试找到文件的绝对路径并使用android.net.Uri.fromFile从图像中获取一个uri .
否则,您可以直接使用 Bitmap 对象,而不是 uri。
好的,经过一番调查,我认为你有两个解决方案。
- 使用 volley 将图像下载为文件,而不使用 ImageLoader。这样就很容易得到图片的文件uri。
- 对于Android-Image-Cropper,您可以使用Activity或使用View(参考here)。您可以在ImageLoadingListener的方法onLoadingComplete中获取图片的Bitmap对象。然后使用com.theartofdev.edmodo.cropper.CropImageView裁剪图片。
我正在尝试创建壁纸应用程序。图片均来自网络
在设置为背景之前,我需要裁剪图像。为此,我使用了一个名为 AndroidImageCropper 的 API。 API 需要一个 URI 对象来执行裁剪。
如何从 ImageView 获取 Uri?因为我的图片来自网络。图像不在可绘制文件夹中。我很困惑。也许你们可以帮助我。
public class MainActivity extends AppCompatActivity {
private NetworkImageView imageView;
private Uri mCropImageUri;
public static final String URL_PHOTO = "http://cdn.wonderfulengineering.com/wp-content/uploads/2016/02/iron-man-wallpaper-42-610x1084.jpg";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (NetworkImageView) findViewById(R.id.image_view);
// Singleton for Volley API, Load image from internet
ImageLoader loader = MySingleton.getInstance(this).getImageLoader();
loader.get(URL_PHOTO, ImageLoader.getImageListener(imageView, R.drawable.temp_picture, android.R.drawable.ic_dialog_alert));
imageView.setImageUrl(URL_PHOTO, loader);
// Put the image on URI object
// #################################
// ### mCropImageUri = <-- ###
// #################################
}
// Action for my button
public void cropImage(View view) {
// API to crop an image
CropImage.activity(mCropImageUri)
.start(this);
}
}
你对我有什么建议吗? 谢谢
所以您正在使用 Volley?我对 Volley 不是很熟悉,只是我的一些想法。
图像下载到Android设备后,尝试找到文件的绝对路径并使用android.net.Uri.fromFile从图像中获取一个uri .
否则,您可以直接使用 Bitmap 对象,而不是 uri。
好的,经过一番调查,我认为你有两个解决方案。
- 使用 volley 将图像下载为文件,而不使用 ImageLoader。这样就很容易得到图片的文件uri。
- 对于Android-Image-Cropper,您可以使用Activity或使用View(参考here)。您可以在ImageLoadingListener的方法onLoadingComplete中获取图片的Bitmap对象。然后使用com.theartofdev.edmodo.cropper.CropImageView裁剪图片。