在 Android 中根据屏幕分辨率更改 View 的高度

Posted

技术标签:

【中文标题】在 Android 中根据屏幕分辨率更改 View 的高度【英文标题】:Change a View's height based on screen resolution in Android 【发布时间】:2014-04-04 08:46:48 【问题描述】:

我想根据屏幕尺寸更改视图的高度。例如,对于 3" 屏幕,它必须是 60dp,对于 5" 屏幕,它必须是 100dp。我怎样才能得到这个?

【问题讨论】:

你需要在demen中定义不同的大小并在你的视图中使用它 如您所问,尝试获取屏幕高度,然后将高度除以某个值,该值可能与您的输出一起设置。这是我猜的最简单的解决方案。 【参考方案1】:

您可以获取设备的屏幕尺寸(高度和宽度),然后您可以设置元素的高度和宽度(按钮/Edittext/LinearLayout),但请记住,在正确位置显示元素需要正确计算。

你可以这样做:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screenWidth = size.x; // int screenWidth = display.getWidth(); on API < 13
int screenHeight = size.y; // int screenHeight = display.getHeight(); on API <13

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(something * screenWidth, something * screenHeight); // This should set the witdh and height of the TextView
lp.setMargins( something * screenWidth, something * screenHeight, 0, 0); // This serves as the settings for the left and top position

txtV.setHeight(something * screenHeight);
txtV.setWidths(something * screenWidth);
txtV.setLayoutParams(lp);

【讨论】:

【参考方案2】:

在每个 value-sw600dp,value-sw720dp,value-hdpi,value-tvdpi(for example) 文件夹中提供 diff dimens.xml files,以便您的布局将根据屏幕尺寸选择值。希望这对您有所帮助。

【讨论】:

以上是关于在 Android 中根据屏幕分辨率更改 View 的高度的主要内容,如果未能解决你的问题,请参考以下文章

android应用开发之View的大小计量单位(pxdpidpdipsp)

不同分辨率和屏幕尺寸的TextView字体大小

Javascript检测屏幕分辨率,更改css,相应裁剪图像

用android系统习惯横屏,有没有办法让输入法不更改屏幕分辨率的,举个例子就是打开应用程序不受输

Android 屏幕适配方案(转载)

UI 面板没有根据屏幕尺寸定位自己