如何根据屏幕分辨率缩放图片?

4

朋友们,

我正在使用以下代码来调整图片大小

 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;
        }

来自互联网。 现在它在高分辨率屏幕上运行良好,但在小屏幕上不行。有没有人能指导我如何根据屏幕分辨率显示图像?

2个回答

3
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();

当您拥有屏幕宽度和高度时,可以根据屏幕分辨率显示图像。

可能这是你的问题,但是已经问这个问题的人知道接下来该做什么。在这里,你可以使用以下代码来调整图像大小:resizedImage = Bitmap.createScaledBitmap(image, imageWidth, imageHeight, true); - Shailendra Singh Rajawat
getWidth()和getHeight()现在已经过时(API 13+)。请使用以下代码:Point size = new Point(); display.getSize(size); int screenWidth = size.x; int screenHeight = size.y; - Ε Г И І И О

2
创建三种类型的可绘制文件夹drawable-hdpi、drawable-mdpi和drawable-ldpi。在这些文件夹中放置具有相同名称的不同分辨率的图像。应用程序将自动映射。另一种方法是创建9-patch图像。 9-patch图像会根据分辨率自动调整大小。在创建布局时要小心,必须正确设置布局。屏幕高度和宽度需要设置图像在屏幕的哪个位置。谢谢,Deepak。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接