如何将 ImageView 转换为文件 imageFile

Posted

技术标签:

【中文标题】如何将 ImageView 转换为文件 imageFile【英文标题】:How to Convert ImageView to File imageFile 【发布时间】:2019-01-18 10:19:30 【问题描述】:

伙计们,

我的 android 版本有问题 > 24

我需要使用 FileProvider,但是我的图像在 ImageView 中

我需要获取 imageview 图像,然后使用文件提供程序,然后我就可以使用图像了。

ImageView ivImage = (ImageView) findViewById(R.id.imgFullscreen);

    if (Build.VERSION.SDK_INT >= 24)
     //I'm working here
        Uri bmpUri =
           FileProvider.getUriForFile (this, "com.xxxxx.fileprovider", newfile);

    else
    
       Uri bmpUri = getLocalBitmapUri(ivImage);
    

【问题讨论】:

【参考方案1】:

这是我用来从图像 Uri 创建文件的代码:

Uri uri = FileProvider.getUriForFile (this, "com.xxxxx.fileprovider", newfile);
String filepath = getRealPathFromURI(uri, mActivity);
File file = new File(filepath);

getRealPathFromUri 函数:

private String getRealPathFromURI(Uri contentURI, Activity activity) 
    Cursor cursor = activity.getContentResolver().query(contentURI, null, null, null, null);
    if (cursor == null) 
        return contentURI.getPath();
     else 
        cursor.moveToFirst();
        int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
        return cursor.getString(idx);
    

【讨论】:

以上是关于如何将 ImageView 转换为文件 imageFile的主要内容,如果未能解决你的问题,请参考以下文章

Android:如何将整个 ImageView 转换为位图?

如何将画布图像“data:image/jpeg;base64,..”转换为普通图像文件 - javascript

UIScrollView 缩放:将平移限制为 imageView.image 边界

如何在 Kotlin 中将 View 转换为 Imageview [重复]

怎么拿到 drawable 的 宽高

如何将 GlideBitmapDrawable 相互转换为 BitmapDrawable