Android屏幕适配之Autosize

2022-08-30 19:55:47 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

一、简介

Autosize今日头条屏幕适配方案终极版,一个极低成本的 Android 屏幕适配方案。

二、使用

1、引用

implementation ‘me.jessyan:autosize:1.2.1’

2、配置

<meta-data

android:name=”design_width_in_dp”

android:value=”宽” />

<meta-data

android:name=”design_height_in_dp”

android:value=”高” />

在AndroidManifest.xml文件中的<application></application>标签内部配置,其中value值的宽高指的是UI效果图的实际分辨率(效果图与标注图分辨率必须一致),横竖屏切换置换宽高的配置。实际使用配置如下图:

3、使用

3.1、布局.xml

在布局中直接使用dp与sp去适配就好,没有什么好说的直接上例子

3.2、代码.java

在实际代码中我这边使用的的一个感觉比较使用的方法AutoSizeConfig.getInstance(),主要用来配置横竖屏分辨率,具体使用如下:

代码语言:javascript复制
        //屏幕适配监听器
        AutoSizeConfig.getInstance().setOnAdaptListener(new onAdaptListener() {
            @Override
            public void onAdaptBefore(Object target, Activity activity) {
                //使用以下代码, 可以解决横竖屏切换时的屏幕适配问题
                //首先设置最新的屏幕尺寸,ScreenUtils.getScreenSize(activity) 的参数一定要不要传 Application !!!
                AutoSizeConfig.getInstance().setScreenWidth(ScreenUtils.getScreenSize(activity)[0]);
                AutoSizeConfig.getInstance().setScreenHeight(ScreenUtils.getScreenSize(activity)[1]);
                //根据屏幕方向,设置设计尺寸
                if (activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
                    //设置横屏设计尺寸
                    AutoSizeConfig.getInstance()
                            .setDesignWidthInDp(1280)
                            .setDesignHeightInDp(800);
                } else {
                    //设置竖屏设计尺寸
                    AutoSizeConfig.getInstance()
                            .setDesignWidthInDp(800)
                            .setDesignHeightInDp(1280);
                }
              
            }

            @Override
            public void onAdaptAfter(Object target, Activity activity) {
                
            }
        });

代码中的800与1280是我这边的设计稿分辨率。

若有想了解更多的可以去看一下源码:https://github.com/JessYanCoding/AndroidAutoSize

官方文档:一种极低成本的Android屏幕适配方式

三、总结

AutoSize使用比较简单使用,代码改动代价小,容易上手。

文章主要是我这边自身的使用总结,写的比较简单,使用是主要以参考为主,具体的需要结合使用者自身需求而定,也可以参考官方文档。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144802.html原文链接:https://javaforall.cn

0 人点赞