我希望我的应用程序的用户能够在运行时修改图像。用户应该能够通过点击图像视图的角并拖动它来修改图像的高度和宽度,如下图所示:
我花了很多时间研究这个,我发现 Make Sense of Multitouch and Resize a large bitmap file to scaled output file like Pinch Zoom 但这些都不符合我的要求。
目前我正在使用下面的函数调整位图的大小,并在 seekbar 的 onprogress 更改方法中更改宽度而不是 frame。通过使用此功能更改图像大小并不顺利。
public static Bitmap decodeFile(File f,int WIDTH,int HIGHT){
try {
//Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(new FileInputStream(f),null,o);
//The new size we want to scale to
final int REQUIRED_WIDTH=WIDTH;
final int REQUIRED_HIGHT=HIGHT;
//Find the correct scale value. It should be the power of 2.
int scale=1;
while(o.outWidth/scale/2>=REQUIRED_WIDTH && o.outHeight/scale/2>=REQUIRED_HIGHT)
scale*=2;
//Decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize=scale;
return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
}
catch (FileNotFoundException e) {}
return null;
}
更新 :
现在使用这个问题的公认答案在画布中使用绘图位图顺利工作。
现在铰孔部分正在将图像周围的框架设置为裁剪框架之类的东西。
请帮助我实现这一目标。