Android 如何从ImageView获取Uri路径?

Android 如何从ImageView获取Uri路径?,android,imageview,android-volley,crop,wallpaper,Android,Imageview,Android Volley,Crop,Wallpaper,我正在尝试创建一个壁纸应用程序。所有图片将来自互联网 在设置为背景之前,我需要裁剪图像。为此,我使用了一个名为AndroidImageCropper的API。这个API需要一个URI对象来执行裁剪 如何从ImageView获取Uri?因为我的图片来自互联网。图像不在可绘制文件夹中。我很困惑。也许你们能帮我 public class MainActivity extends AppCompatActivity { private NetworkImageView imageView; priva

我正在尝试创建一个壁纸应用程序。所有图片将来自互联网

在设置为背景之前,我需要裁剪图像。为此,我使用了一个名为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);
}
public类MainActivity扩展了AppCompatActivity{
专用网络图像视图;
私有Uri-mCropImageUri;
公共静态最终字符串URL_PHOTO=”http://cdn.wonderfulengineering.com/wp-content/uploads/2016/02/iron-man-wallpaper-42-610x1084.jpg";
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView=(NetworkImageView)findViewById(R.id.image\u视图);
//用于截取API的单例,从internet加载图像
ImageLoader=MySingleton.getInstance(this.getImageLoader();
get(URL_PHOTO,ImageLoader.getImageListener(imageView,R.drawable.temp_picture,android.R.drawable.ic_dialog_alert));
setImageUrl(URL\u照片,加载程序);
//将图像放在URI对象上
// #################################

//####McRopimageri=那么你用的是截击?我对截击不太熟悉,都是我的一些想法

图像下载到Android设备后,尝试查找文件的绝对路径,并使用Android.net.Uri.fromFile从图像中获取Uri

或者,您可以直接使用位图对象,而不是uri


好的,经过一些调查,我认为你有两个解决方案

  • 使用volley将图像作为文件下载,而不使用ImageLoader。这样就很容易获得图像的文件uri
  • 对于Android Image Cropper,您可以使用Activity或View(请参阅)。您可以在ImageLoadingListener的方法onLoadingComplete中获取图像的位图对象。然后使用com.theartofdev.edmodo.Cropper.CropImageView裁剪图像

  • 欢迎来到StackOverflow!请不要发布代码的图片。如果你能阅读一个好问题的规则,那么你可以将你的问题包括实际的代码抱歉。谢谢提醒我。现在更好了!是的,我正在使用截击。如果你对API有其他建议,我也会很高兴。欢迎所有建议。非常感谢太多了。你太棒了。我照你说的做了,做得很好。@DanJhonatan将答案标记为已接受,这样它可以帮助其他人。