在 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)
Javascript检测屏幕分辨率,更改css,相应裁剪图像