这里的一些背景资料。我正在Android应用,需要一个在ImageView的相同的物理尺寸要显示在屏幕上而不管图像被上示出的装置(由yInches xInches)。我遇到的问题是,ImageView的大小,默认情况下,改变大小取决于当前的屏幕分辨率和屏幕尺寸。
我需要的是一个函数:
我有点新的Android开发,所以我不是100%熟悉不同的坐标系,如PX VS 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你应该使用的ViewGroup像的LinearLayout或imageview的RelativeLayout的一个把你里面。使用用于imageviews为高度及宽度通常的属性是匹配的父。如果您所属的屏幕变化的关系这样做,你的ImageView改变你的屏幕。