以下是一些背景信息。我正在制作一个Android应用,该应用要求ImageView以相同的物理尺寸(xInches x yInches)显示在屏幕上,而不管显示图像的设备是什么。我遇到的问题是,默认情况下,ImageView的大小会根据当前屏幕分辨率和屏幕大小更改大小。
我需要的是一个功能,
我是Android开发的新手,所以我不是100%熟悉不同的坐标系,例如px vs dpi,但是我要寻找的是一种将这些坐标系与物理坐标。
顺便说一句,我只使用英寸,因为我居住在美国。但是,我的意思是说,任何在物理空间而不是屏幕空间测量的单位。
感谢您的帮助!
答案 0 :(得分:1)
对于此类任务,您可能需要找到设备的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;
}
答案 1 :(得分:1)
据我了解您的问题:
首先要在android中使用imageview,应使用诸如linearlayout或relativelayout之类的视图组在其中放置一个imageview。用于imageviews的height和width的通常属性是match parent。如果您的屏幕发生变化,则这样做会改变图像视图相对于屏幕的变化。