在Activity中动态设置控件或布局的宽高适应不同分辨率

  比如要开发一个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


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值