安卓:如何确定屏幕上ImageView的大小(以英寸为单位)



以下是一些背景信息。我正在制作一个Android应用程序,该应用程序要求ImageView以相同的物理大小(x英寸乘y英寸)显示在屏幕上,而不管图像显示在哪个设备上。我遇到的问题是,默认情况下,ImageView的大小会根据当前屏幕分辨率和屏幕大小而变化。

我需要的是一个功能:

  • 具有我需要调整大小的ImageView的输入、首选大小的x(以英寸为单位)和首选大小的y(以英寸计)
  • 计算x乘y英寸的像素尺寸(我需要弄清楚如何实现的魔法)
  • 返回以dpi/px或我可以轻松应用于ImageView的其他单位计算的x和y维度

我是Android开发的新手,所以我对不同的坐标系不是100%熟悉,比如px和dpi,但我所寻找的只是一种将这些坐标系与物理坐标对应起来的方法。

顺便说一句,我只使用英寸,因为我住在美国。然而,我想说的是,在物理空间而不是

屏幕空间谢谢你的帮助!

对于这样的任务,您可能需要找到设备的dpi,然后根据它调整图像大小。所以类似的东西

String inchesToDp(int x, int y){
DisplayMetrics metrics = getResources().getDisplayMetrics();
//int densityDpi = metrics.densityDpi;  used for general purpose
int xInch = x * metrics.xdpi;     //1 inch in dpi is just the amount of dpi
int yInch = y * metrics.ydpi;     //x and ydpi give exact lcd dpi for horizontal and vertical but you could just use x * densityDpi if it doesn't matter
return "x in dp: " + xInch + "y in dp: " + yInch;
}

正如我理解您的问题:

要在android中使用imageview,首先你应该使用像linearlayout或relativelayout这样的视图组,并将你的imageview放入其中;宽度与父项匹配。这样做,如果你的屏幕发生变化,你的imageview相对于你的屏幕也会发生变化。

最新更新