比如要开发一个2048的小游戏,我们需要在布局中创建尽量大的正方形的格子
而在不同的分辨率的设备上难以统一实现
private int width;
private GridLayout gridLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridLayout=findViewById(R.id.grid);
DisplayMetrics dm = getResources().getDisplayMetrics();
width = dm.widthPixels;
ConstraintLayout.LayoutParams params= new ConstraintLayout.LayoutParams(new GridLayout.LayoutParams());
//获取布局信息
params.width=width;//设置当前控件布局的高度
params.height=width;
gridLayout.setLayoutParams(params);//将设置好的布局参数应用到控件中
}
}
如我在
ConstraintLayout下有GridLayout,通过这样的方法获得GridLayout的长宽位置信息,再将GridLayout的宽高都设置成屏幕的宽即可。
关于LayoutParams的运用可参考
http://www.jianshu.com/p/0d6f753fdd92