2014-04-04 104 views
1

我想根据屏幕大小更改视图的高度。对于3英寸的屏幕来说,它必须是60dp,对于5英寸的屏幕则必须是100dp。我怎样才能得到这个?根据Android中的屏幕分辨率更改视图的高度

+0

您需要在demen中定义不同的尺寸并在视图中使用它 –

+0

正如您所询问的那样,尝试获取屏幕高度,然后将高度除以某个值,这可能会与输出值一起设置。我猜这是最简单的解决方案。 – OAEI

回答

2

你可以得到设备的屏幕尺寸(高度和宽度),然后你可以设置元素的高度和宽度(Button/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); 
0

提供每个value-sw600dp,value-sw720dp,value-hdpi,value-tvdpifor example)文件夹diff dimens.xml files,使您的布局将根据屏幕size.Hope这可以帮助你挑选值。