【发布时间】:2013-11-19 01:13:39
【问题描述】:
起点:在我的应用程序中,我让用户选择将用作应用程序背景的图像。如果图像的宽度/高度大于设备的屏幕宽度/高度,我想裁剪图像以使其与设备尺寸匹配(见下图)。
我尝试了下面的方法,但完全没有运气,生成的图像一团糟。
private Bitmap crop(Bitmap bmp) {
int centerW = bmp.getWidth() / 2;
int centerH = bmp.getHeight() / 2;
int startX = centerW
//returns screen width
- GetSettings.getScreenDimensions(getActivity())[0] / 2;
int startY = centerH
//returns screen height
- GetSettings.getScreenDimensions(getActivity())[1] / 2;
return Bitmap.createBitmap(bmp, startX, startY,
GetSettings.getScreenDimensions(getActivity())[0],
GetSettings.getScreenDimensions(getActivity())[1]);
}
我想我误解了我需要传递给createBitmap() 方法以获得正确结果的参数。
那么如何裁剪 Bitmap 以使其宽度/高度与屏幕的宽度/高度相匹配?
【问题讨论】:
-
这应该对你有帮助:stackoverflow.com/a/9891929/2664466
-
“结果图像混乱”是什么意思?同样正如 Collin 提到的,您可能需要将生成的位图适合您的 ImageView
-
@Chewie 这意味着结果只是原始图像的一些模糊部分。我现在不使用任何视图,我在 sd 卡上创建一个目录并将图像保存在那里