如何根据屏幕分辨率缩放图像?
我使用下面的代码resizeImage
private Bitmap resizeImage(final Bitmap image) {
Bitmap resizedImage = null;
if(image != null)
{
int maxHeight = 80; //actual image height coming from internet
int maxWidth = 150; //actual image width coming from internet
int imageHeight = image.getHeight();
if (imageHeight > maxHeight)
imageHeight = maxHeight;
int imageWidth = (imageHeight*image.getWidth())/image.getHeight();
if (imageWidth > maxWidth) {
imageWidth = maxWidth;
imageHeight = (imageWidth*image.getHeight())/image.getWidth();
}
resizedImage = Bitmap.createScaledBitmap(image, imageWidth, imageHeight, true);
}
return resizedImage;
}
来自互联网的到来。 现在它在高分辨率屏幕上工作正常,但在小屏幕上它没有任何人指导我该如何根据屏幕分辨率显示图像?
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();
因此,您可以根据屏幕分辨率显示图像。
我面临着同样的问题,我无法正确获取屏幕宽度和高度如何使用..如果可以请分享一些更多的代码给你的答案... – Sam 2012-11-07 05:57:23
我们接下来要做的事..这是真正的问题..如何设置图像符合上述计算的大小? – 2013-05-15 05:30:18
以及它可能是你的问题,但人问这个问题已经知道下一步该怎么做。这里你去resizedImage = Bitmap.createScaledBitmap(image,imageWidth,imageHeight,true); – 2013-05-15 06:33:52
创建三种可绘制文件夹drawable-hdpi,drawable-mdpi,drawable-ldpi。在这些文件夹中放入具有相同名称的图像的差异分辨率。该应用程序将映射自己。另一种方法是创建9个补丁的图像。 9幅图像根据分辨率自行调整。并且在创建布局时还要小心。你必须正确设置布局。屏幕高度和宽度需要在屏幕的哪个部分设置图像。
由于 迪帕克
这是正确的解决方案。无需自行调整大小,只需将图像放入正确的文件夹即可。 – async 2014-04-05 13:39:30
背后是什么计算imageHeigt和imageWidth逻辑??其实我在我的代码中使用你的逻辑,但是当我在我的Galaxy 10.1上运行它时,图像变得更小了.. – User42590 2013-01-01 08:27:02