屏幕适配
常用的解决方法:
1、java代码中设置宽高度
首先我们要做的是获取当前屏幕的宽高度,因为这个在后面要用到 我们可以写两个静态变量用来保存当前屏幕的宽高度:
-
public class Constant{ public static int displayWidth;//屏幕宽度 public static int displayHeight;//屏幕高度 }
然后在第一个Activity启动的时候,获取这两个值
-
DisplayMetrics displayMetrics =newDisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); Constant.displayWidth = displayMetrics.widthPixels; Constant.displayHeight = displayMetrics.heightPixels;
布局代码我们可以全都统一写成wrap-content,其实写成什么都无所谓,因为这个值只是暂时的。
最后我们在Activity的onCreate方法里这么做
-
// 第一个按钮,宽度100%,高度10% LinearLayout.LayoutParams params =newLinearLayout.LayoutParams(LayoutParams.FILL_PARENT,(int)(Constant.displayHeight *0.1f+0.5f)); btn1.setLayoutParams(params); // 第二个按钮,宽度100%,高度30% LinearLayout.LayoutParams params2 =newLinearLayout.LayoutParams(LayoutParams.FILL_PARENT,(int)(Constant.displayHeight *0.3f+0.5f)); btn2.setLayoutParams(params2); // 第三个按钮,宽度50%,高度20% LinearLayout.LayoutParams params3 =newLinearLayout.LayoutParams((int)(Constant.displayWidth *0.5f+0.5f),(int)(Constant.displayHeight *0.2f+0.5f)); btn3.setLayoutParams(params3); // 第三个按钮,宽度70%,高度填满剩下的空间 LinearLayout.LayoutParams params4 =newLinearLayout.LayoutParams((int)(Constant.displayWidth *0.7f+0.5f),LayoutParams.FILL_PARENT); btn4.setLayoutParams(params4);
2、自定义尺寸法


3、写多布局
为不同的尺寸界面单独写布局

写多个布局的时候,配置文件一定要加上这段配置代码,不然有时可能会出问题
<supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" />
4.weight设置
勿忘初衷

浙公网安备 33010602011771号