Android之屏幕适配

        网上屏幕适配的方式有很多,比如按百分比的、按分辨率的,这里我是按最小宽度去适配,也是Google建议的方式。

        1.首先下载屏幕适配插件ScreenMatch。

        AS→File→Settings→plugins→SreenMatch下载即可。

        2.在项目的任意目录或文件右键选择ScreenMatch,选module,生成一堆dimens.xml文件。生成成功的前提是原有工程中已存在默认的dimens.xml文件。觉得抽象的话,具体的操作方式,网上一搜,很多。

        3.根据UI给的设计图,用设计图中的最小宽度除以基准值360得到比例值,然后用设计图控件标注除以比例值即可。

        例如:UI设计图为800*1280,控件的宽720px,高100px,则设置控件宽:@dimen/dp_720/(800/360),高:@dimen/dp_100/(800/360)

        4.字体的设置方式同3,只不过将dp_XXX换为sp_XXX即可。

        5.获取屏幕最小宽度的代码:

   /**
     * 获取屏幕相关参数
     *
     * @return
     */
    public void getScreenParams() {
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        int heightPixels = dm.heightPixels;
        int widthPixels = dm.widthPixels;
        float xdpi = dm.xdpi;
        float ydpi = dm.ydpi;
        int densityDpi = dm.densityDpi;
        float density = dm.density;
        float scaledDensity = dm.scaledDensity;
        float heightDP = heightPixels / density;
        float widthDP = widthPixels / density;
        float smallestWidthDP;
        if(widthDP < heightDP) {
            smallestWidthDP = widthDP;
        }else {
            smallestWidthDP = heightDP;
        }
        String str = "heightPixels: " + heightPixels + "px";
        str += "\nwidthPixels: " + widthPixels + "px";
        str += "\nxdpi: " + xdpi + "dpi";
        str += "\nydpi: " + ydpi + "dpi";
        str += "\ndensityDpi: " + densityDpi + "dpi";
        str += "\ndensity: " + density;
        str += "\nscaledDensity: " + scaledDensity;
        str += "\nheightDP: " + heightDP + "dp";
        str += "\nwidthDP: " + widthDP + "dp";
        str += "\nsmallestWidthDP: " + smallestWidthDP + "dp";
        Log.d(TAG, str);
    }

        6.经过5台不同Android平板的实验,亲测可行,以上供大家参考!

 

 

      参考资料:

      1.一种非常好用的Android屏幕适配

      2.Android dp方式的屏幕适配工具使用(Android Studio插件方式)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值