2

我正在尝试根据屏幕尺寸计算图像高度和宽度。我从后端获取 5'x 7' 尺寸的图像,为了转换像素乘以 72,我有 360 X 504 尺寸的图像。对于 360 X 504 ,我的动态透明矩形区域将出现在 (1.223') x (1.179') 即 88.05 x 84.88 处。现在对于屏幕尺寸 320 x 480,我想计算我的动态矩形区域的高度和宽度。为此,我使用以下计算:

对于高度:

新高度 = (84.88/504)*480 = 80.83

其中 84.88 - 矩形图像高度, 504 - 屏幕尺寸高度, 480 - 新屏幕尺寸高度。

宽度相同的方式:

新宽度= (88.05/360)*320 = 78.26

当屏幕尺寸增加或减少时,这是计算图像尺寸的方法吗?我需要将动态图像准确地放置在主背景图像的矩形区域(棕色区域)上。

简而言之,我将获得360X504 的图像 x、y 位置和高度、宽度.. 现在我需要计算320x480 的 x、y 和高度、宽度

在此处输入图像描述

4

2 回答 2

2

为什么不在 /drawables/ldpi 中预先配置它们?

这样,当你在你想要的地方给按钮充气时,它会自动发生。

您还可以使用:

API3+

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

API1+(虽然现在在较新的 API 中已弃用)

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 

要获取显示尺寸,并且由于您现在知道显示信息,您可以通过名称(small.jpg、smaller.jpg)选择要为哪个 /drawable 元素充气,并使用小 case/switch 语句来处理奇怪的屏幕尺寸在该类别的屏幕中。这将让它一直工作并正确自动调整大小。

这会让人头疼,因为系统已经知道 dpi 和屏幕类别(“large”、“x-large”等),系统为您完成了艰苦的工作!

于 2012-11-11T05:19:15.920 回答
1

如果您可以预先定义布局中的位置,那么您可能可以根据配置创建不同的布局

  • 低密度脂蛋白
  • mdpi
  • ETC

并设置scaleType.ImageView

以后每当您从服务器获取图像时,只需将其设置为视图,它将自动管理缩放,包括设备 dpi。

于 2012-11-11T05:51:56.367 回答