Android适配不同屏幕大小

法一:静态适配

从小屏幕到大屏幕为values-xhdpi 到values-xxxhdpi(优先级高于values):

values-xhdpi
values-xxhdpi
values-xxxhdpi
values-large
values-xlarge

横屏时(优先级高于values-land): 
 values-land-xhdpi
 values-land-xxhdpi
 values-land-xxxhdpi
 values-large-land
 values-xlarge-land

 根据分辨率划分

xhdpi:2.0
hdpi:1.5
mdpi:1.0(基准)
ldpi:0.75

 

这意味着,如果你针对xhdpi的设备生成了一张200*200的图像,同样你应该为mdpi的设备生成一张100*100的图像,为ldpi生成75*75的图片资源。

方法二:动态适配

xml里设置padding,代码端通过控制Layout的padding来调整大小(1080*1620为屏幕的分辨率)。

        DisplayMetrics dm = getResources().getDisplayMetrics();
        int mScreenWidth = dm.widthPixels;
        int mScreenHeight = dm.heightPixels;

        float ratioWidth = (float) mScreenWidth / 1080;
        float ratioHeight = (float) mScreenHeight / 1620;
        float ratioMetrics = Math.min(ratioWidth, ratioHeight);

        if (ratioMetrics < 1) {
            LinearLayout layout = findViewById(R.id.tools);
            layout.setPadding(0,0,0,0);
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值