Привет, великие люди из stackoverflow.com, я столкнулся с большими трудностями в своем коде; что невозможно изменить размеры моих изображений в соответствии с размером экрана.Как изменить масштаб растрового изображения на разные размеры экрана, но сохранить его в квадрате?
У меня есть изображение SAY 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;
Любая помощь будет принята с благодарностью
I 'немного смущен правилами, которые вы хотите применить, но если вы хотите сохранить квадрат изображения, тогда вам нужно 'float scaleWidth = ... * width' и' float scaleHeight = ... * height' для того же значение '...'. Я бы порекомендовал, если возможно, что вы * запустили *, вычислив «float scale = ...», а затем просто напишите «float scaleWidth = scale * width» и 'float scaleHeight = масштаб * высота'. Этот гуара чтобы соотношение сторон сохранялось. – ruakh
Можете ли вы не просто умножить его на процент ..? Если вы хотите, чтобы квадрат 100x100 составлял 10%, это не просто: width = 0.10 * 100, height = 0.10 * 100 –