你好stackoverflow.com的人,我偶然发现我的代码很难;无法根据我的屏幕尺寸调整图像大小。
我的图像是65像素乘65像素,但我希望这个图像在屏幕的某个百分比说6%,同时保持正方形。
我的大脑不能为此处理数学(因为它很慢:-()
(_ width& _height是屏幕宽度和高度)
到目前为止我得到的是:
int width = bitmap.getWidth();
int height = bitmap.getHeight();
int avg_screen_dimension = (_width + _height) / 2;
float scaleWidth =
((float) width + (avg_screen_dimension - _width)) / width;
float scaleHeight =
((float) height + (avg_screen_dimension - _height)) / height;
// CREATE A MATRIX FOR THE MANIPULATION
Matrix matrix = new Matrix();
// RESIZE THE BIT MAP
matrix.postScale(scaleWidth, scaleHeight);
// RECREATE THE NEW BITMAP
Bitmap resizedBitmap =
Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, false);
return resizedBitmap;
非常感谢任何帮助!
答案 0 :(得分:2)
它只不过是简单的代数 - 不需要复杂的数学。
您必须在屏幕宽度或高度的一小部分之间进行选择,除非它们相等。
设h =屏幕高度,w =屏幕宽度,f =屏幕尺寸的分数,x =图像尺寸。
然后x = h * f。如果你想把它变成宽度的一小部分,用w代替h。
答案 1 :(得分:0)
(就像在旁边 - 在粘贴的代码中,你混淆了变量名称:你将它们声明为 height 和 width 但是将它们作为 _width 和 _height