Как изменить масштаб растрового изображения до разных размеров экрана, но сохранить его квадратным? - PullRequest
0 голосов
/ 30 января 2012

Здравствуйте, замечательные люди из 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;

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

2 голосов
/ 30 января 2012

Это немного больше, чем простая алгебра - сложная математика не требуется.

Вам придется выбирать между долей ширины или высоты экрана, если они не равны.

Пусть h = высота экрана, w = ширина экрана, f = доля размера экрана, x = размер изображения.

Тогда x = h * f. Если вы хотите, чтобы это было частью ширины, замените w на h.

0 голосов
/ 30 января 2012

(В качестве отступления - в своем вставленном коде вы перепутали имена переменных: вы объявляете их как height и width , но передаете их как _width и _height

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...