Pour adapter le Bitmap à l'écran sans couper rien, vous devez d'abord décider si le rapport d'aspect est plus grand que celui de l'écran a ou plus petit. Si le format de l'image est plus grand que le format de l'écran, cela signifie que le bitmap est plus grand et/ou moins large que l'écran, comme la deuxième image de la question. Vous devez donc l'échelle de l'image en fonction de la hauteur comme ceci:
if(imageWidth/imageHeight > screenWidth/screenHeight){
scaleFactor = screenHeight/imageHeight;
imageXPosition = screenWidth/2-imageWidth/2;
imageYPosition = 0;
Sinon, l'image doit être dimensionnée en fonction de la largeur comme celui-ci:
}else{
scaleFactor = screenWidth/imageHeight;
imageXPosition = 0;
imageYPosition = screenWidth/2-imageWidth/2;
}
Vous pouvez utiliser ces valeurs pour dessiner le bitmap à l'aide Matrix ou créer un bitmap mis à l'échelle avec les dimensions imageWidth*scaleFactor
et imageHeight*scaleFactor
et dessiner à imageXPosition
| imageYPosition
(ce qui est plus économe de la mémoire.
Alors voulez-vous Bitmap pour remplir tout l'écran ou de ne pas être recadrées comme dans les images ci-dessus – Gumbo
? @Gumbo ne pas rogner comme image ci-dessus !! – HoJunLee