根据android中的屏幕大小计算图像大小

时间:2012-11-11 04:49:20

标签: android dynamic image-processing

我正在尝试计算图像高度&宽度基于屏幕尺寸..我从后端获得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

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

如果需要进一步的详细信息,请告诉我。

简而言之:

我会得到图像 x,y位置&高度,宽度为360X504 ..现在我需要计算 x,y&高度,宽度为320x480

enter image description here

2 个答案:

答案 0 :(得分: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)选择要扩充的/可绘制元素,并使用小的case / switch语句来处理该类屏幕内的奇数屏幕尺寸。这将使它一直工作并正确自动调整大小。

由于系统已经知道了dpi和屏幕类(“大”,“x大”等),因此系统会为你付出艰苦的努力,这会让人头疼不已!

答案 1 :(得分:1)

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

  • LDPI
  • MDPI

并设置scaleType的{​​{1}}属性。

稍后,只要您从服务器获取图像,只需将其设置为View,它就会自动管理包含设备dpi的缩放。