Растениеводство на квадрат - PullRequest
4 голосов
/ 13 февраля 2012

У меня есть чертеж, размер которого я изменил до нужной высоты (25 dp), и ширина пропорционально масштабируется.Тем не менее, я хочу, чтобы изображение было квадратным и шириной 25 dp.Однако я не хочу искажать изображение, поэтому я хочу обрезать равные части справа и слева от рисунка, чтобы дать мне центр 25dpx25dp.Это возможно?Как?Я пытался в течение последних двух часов, и я готов бросить полотенце ...

1 Ответ

3 голосов
/ 13 февраля 2012

Bitmap target= Bitmap.createBitmap(width, height,Config.ARGB_8888);
Canvas canvas = new Canvas(target) 
float hScale = width/(float)source.getWidth();
float vScale = height/(float)source.getHeight();
float scale = Math.min(hScale, vScale);
Matrix matrix = new Matrix();
matrix.setScale(scale, scale);
matrix.postTranslate(width/2 - source.getWidth()/2 * scale, height/2 - source.getHeight()/2 * scale);
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(source, matrix, new Paint());

...