安卓:如何确定英寸屏幕上的ImageView的大小

问题描述 投票:0回答:2

这里的一些背景资料。我正在Android应用,需要一个在ImageView的相同的物理尺寸要显示在屏幕上而不管图像被上示出的装置(由yInches xInches)。我遇到的问题是,ImageView的大小,默认情况下,改变大小取决于当前的屏幕分辨率和屏幕尺寸。

我需要的是一个函数:

  • 具有优选大小的ImageView的我需要调整,优选的尺寸的x(英寸)的输入,和y(英寸)
  • 由y英寸(魔术我需要搞清楚如何实现)计算的东西X的像素尺寸
  • 返回DPI / PX或东西计算x和y的尺寸,我可以很容易地应用到的ImageView

我有点新的Android开发,所以我不是100%熟悉不同的坐标系,如PX VS dpi的,但我正在寻找的是对应这些协调与物理坐标系统的方式。

顺便说一句,我只使用英寸,因为我住在美国。然而,我的意思是说,在物理空间,而不是屏幕空间办法的单位。

谢谢你的帮助!

java android imageview resize scale
2个回答
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
投票

我明白你的问题:

在Android首次全部使用的ImageView你应该使用的ViewGroup像的LinearLayout或imageview的RelativeLayout的一个把你里面。使用用于imageviews为高度及宽度通常的属性是匹配的父。如果您所属的屏幕变化的关系这样做,你的ImageView改变你的屏幕。

© www.soinside.com 2019 - 2024. All rights reserved.