【问题标题】:How to get the Uri path from a ImageView?如何从 ImageView 获取 Uri 路径?
【发布时间】:2017-08-17 23:48:13
【问题描述】:

我正在尝试创建墙纸应用程序。所有图片均来自互联网。

在设置为背景之前,我需要裁剪图像。为此,我使用了一个名为 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);
}

}

你对我有什么建议吗? 谢谢。

【问题讨论】:

  • 欢迎来到 StackOverflow!请不要发布您的代码的图片。如果您可以阅读 How to Ask 一个好问题的规则,那么您可以 edit 您的问题包含实际代码
  • 对不起。谢谢你提醒我。
  • 谢谢了!

标签: android imageview android-volley crop wallpaper


【解决方案1】:

所以你使用的是Volley?我对 Volley 不是很熟悉,只是我的一些想法。

图片下载到安卓设备后,尝试查找文件的绝对路径,并使用android.net.Uri.fromFile从图片中获取uri。

或者,你可以直接使用 Bitmap 对象,而不是 uri。


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

  1. 使用 volley 将图像下载为文件,而不使用 ImageLoader。这样就很容易得到图片的文件uri。
  2. 对于Android-Image-Cropper,您可以使用Activity或使用View(参考here)。您可以在ImageLoadingListeneronLoadingComplete方法中获取图片的Bitmap对象。然后使用 com.theartofdev.edmodo.cropper.CropImageView 裁剪图像。

【讨论】:

  • 是的,我正在使用 Volley。如果您对 API 有其他建议,我也会很高兴。欢迎所有建议。谢谢
  • 非常感谢。你真棒。我照你说的做了,而且效果很好。
  • @DanJhonatan 将答案标记为已接受,以便帮助其他人。
猜你喜欢
  • 2018-07-05
  • 1970-01-01
  • 2011-12-31
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多