Чтобы установить Bitmap на экран без ничего резать, вы должны сначала решить, если соотношение сторон больше, чем один экран имеет или меньше. Если соотношение сторон изображения больше, чем соотношение сторон экрана, это означает, что растровое изображение более высокое и/или не такое широкое, как экран, как и второе изображение в вопросе. Таким образом, вы должны масштабировать изображение на основе высоты, как это:
if(imageWidth/imageHeight > screenWidth/screenHeight){
scaleFactor = screenHeight/imageHeight;
imageXPosition = screenWidth/2-imageWidth/2;
imageYPosition = 0;
Else изображение должно быть соизмеримо на основе ширины, как это:
}else{
scaleFactor = screenWidth/imageHeight;
imageXPosition = 0;
imageYPosition = screenWidth/2-imageWidth/2;
}
Вы можете использовать эти значения для рисования растрового изображения с помощью a Matrix или создать масштабированный растровый рисунок с размерами imageWidth*scaleFactor
и imageHeight*scaleFactor
и нарисовать его на imageXPosition
| imageYPosition
(это больше экономии памяти.
Так что вы хотите Bitmap, чтобы заполнить весь экран или не быть обрезаны, как в приведенных выше? – Gumbo
изображений @Gumbo не быть обрезаны, как изображение выше !! – HoJunLee