Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-使用全分辨率图像将ImageView保存到文件_Android_Save_Imageview - Fatal编程技术网

Android-使用全分辨率图像将ImageView保存到文件

Android-使用全分辨率图像将ImageView保存到文件,android,save,imageview,Android,Save,Imageview,我在ImageView中放置了一个图像,并实现了多点触控以调整图像大小并在ImageView中移动图像。现在我需要将调整大小的图像保存到图像文件中。我尝试了.getDrawingCache(),但该图像的大小与ImageView相同。我希望图像显示ImageView显示的内容,但分辨率为全分辨率(大于ImageView) 有什么想法吗?您可以在背景中放置位图对象,您可以使用以下代码调整其大小: Matrix matrix = new Matrix(); matrix.postScale(scal

我在ImageView中放置了一个图像,并实现了多点触控以调整图像大小并在ImageView中移动图像。现在我需要将调整大小的图像保存到图像文件中。我尝试了.getDrawingCache(),但该图像的大小与ImageView相同。我希望图像显示ImageView显示的内容,但分辨率为全分辨率(大于ImageView)


有什么想法吗?

您可以在背景中放置位图对象,您可以使用以下代码调整其大小:

Matrix matrix = new Matrix();
matrix.postScale(scaledWidth, scaledHeight);

Bitmap resizedBitmap = Bitmap.createBitmap(originalBitmap, 0, 0,
    originalBitmap.width(), originalBitmap.height(), matrix, true); 
然后使用以下代码将其保存:

OutputStream fOut = null;
File file = new File(strDirectoy,imgname);
fOut = new FileOutputStream(file);

resizedBitmap.compress(Bitmap.CompressFormat.PNG, 0, fOut);
fOut.flush();
fOut.close();

我的解决方案是使用我在ImageView中使用的矩阵来获得平移,并且我还得到了该图像的比例。使用这两个,我裁剪了原始图像

Bitmap resizedBitmap = Bitmap.createBitmap(
                        BitmapFrontCover, (int) UpperLeftCornerX,
                        (int) UpperLeftCornerY, (int) CropWidth,
                        (int) CropHeight);