1.下载安装
File------>Settings----------->Plugin---------->Browse Repositories-------------->搜索screenMatch--->install.
点击Browse Repositories 后,弹出如下界面,我们只需按提示操作即可,安装完成重启AndroidStudio。
2.使用
在你的项目例如app上右键,即可看到我们刚才安装的插件screenMatch,如下图所示:
选择ScreenMatch后,弹出对话框,给我们提示让我选择我们要适配的module,如下图,这里我只有一个模块。
选择OK我们会发现,如下图这样的提示,证明我们操作成功了。
点击OK,我们会项目的目录下发现screenMatch.properties,screenMatch_example_dimens.xml文件,那么我分别看他们是什么,如下:
############################################################################ # Start with '#' is annotate. # # In front of '=' is key, cannot be modified. # # More information to visit: # # http://blog.csdn.net/fesdgasdgasdg/article/details/52325590 # # http://download.csdn.net/detail/fesdgasdgasdg/9913744 # # https://github.com/mengzhinan/PhoneScreenMatch # ############################################################################ # # You need to refresh or reopen the project every time you modify the configuration, # or you can't get the latest configuration parameters. # ############################################################################# # # Base dp value for screen match. Cut the screen into [base_dp] parts. # Data type is double. System default value is 360. # I advise you not to modify the value, be careful !!!!!!!!! _^_ *_* base_dp=360 # Also need to match the phone screen of [match_dp]. # If you have another dp values. # System default values is 384,392,400,410,411,480,533,592,600,640,662,720,768,800,811,820,960,961,1024,1280,1365 match_dp= # If you not wanna to match dp values above. Write some above values here, append value with "," . # For example: 811,961,1365 ignore_dp= # They're not android module name. If has more,split with , Symbol. # If you set, it will not show in SelectDialog. # If you have, write here and append value with "," . # For example: testLibrary,commonModule # System default values is .gradle, gradle, .idea, build, .git ignore_module_name= # Use which module under the values/dimen.xml file to do the base file, # and generated dimen.xml file store in this module? # Default value is 'app'. match_module=app # Don't show select dialog again when use this plugin. # System screen match will use the last selected module name or default module name. # You can give value true or false. Default value is false. not_show_dialog=false # Do you want to generate the default example dimens.xml file? # In path of .../projectName/screenMatch_example_dimens.xml, It does not affect your project code. # You can give value true or false. Default value is false. not_create_default_dimens=false # Does the font scale the same size as the DP? May not be accuracy. # You can give value true or false. Default value is true. Also need scaled. is_match_font_sp=true # Do you want to create values-wXXXdp folder or values-swXXXdp folder ? # I suggest you create values-swXXXdp folder, # because I had a problem when I was working on the horizontal screen adapter. # values-swXXXdp folder can solve my problem. # If you want create values-swXXXdp folder, set "create_values_sw_folder=true", # otherwise set "create_values_sw_folder=true". # Default values is true. create_values_sw_folder=true |
<?xml version="1.0" encoding="UTF-8"?> <resources> <!-- Your custom size defind by references, can be writted in anywhere, any module, any values/*.xml, for example: --> <dimen name="card_common_margin_left">@dimen/dp_15</dimen> <!-- dp and sp values, must be defind in this file! --> <!-- view size,you can add if there is no one --> <dimen name="dp_m_60">-60dp</dimen> <dimen name="dp_m_30">-30dp</dimen> <dimen name="dp_m_20">-20dp</dimen> <dimen name="dp_m_12">-12dp</dimen> <dimen name="dp_m_10">-10dp</dimen> <dimen name="dp_m_8">-8dp</dimen> <dimen name="dp_m_5">-5dp</dimen> <dimen name="dp_m_2">-2dp</dimen> <dimen name="dp_m_1">-1dp</dimen> <dimen name="dp_0">0dp</dimen> <dimen name="dp_0_1">0.1dp</dimen> <dimen name="dp_0_5">0.5dp</dimen> <dimen name="dp_1">1dp</dimen> <dimen name="dp_1_5">1.5dp</dimen> <dimen name="dp_2">2dp</dimen> <dimen name="dp_2_5">2.5dp</dimen> <dimen name="dp_3">3dp</dimen> <dimen name="dp_3_5">3.5dp</dimen> <dimen name="dp_4">4dp</dimen> <dimen name="dp_4_5">4.5dp</dimen> <dimen name="dp_5">5dp</dimen> <dimen name="dp_6">6dp</dimen> <dimen name="dp_7">7dp</dimen> <dimen name="dp_7_5">7.5dp</dimen> <dimen name="dp_8">8dp</dimen> <dimen name="dp_9">9dp</dimen> <dimen name="dp_10">10dp</dimen> <dimen name="dp_11">11dp</dimen> <dimen name="dp_12">12dp</dimen> <dimen name="dp_13">13dp</dimen> <dimen name="dp_14">14dp</dimen> <dimen name="dp_15">15dp</dimen> <dimen name="dp_16">16dp</dimen> <dimen name="dp_17">17dp</dimen> <dimen name="dp_18">18dp</dimen> <dimen name="dp_19">19dp</dimen> <dimen name="dp_20">20dp</dimen> <dimen name="dp_21">21dp</dimen> <dimen name="dp_22">22dp</dimen> <dimen name="dp_23">23dp</dimen> <dimen name="dp_24">24dp</dimen> <dimen name="dp_25">25dp</dimen> <dimen name="dp_26">26dp</dimen> <dimen name="dp_27">27dp</dimen> <dimen name="dp_28">28dp</dimen> <dimen name="dp_29">29dp</dimen> <dimen name="dp_30">30dp</dimen> <dimen name="dp_31">31dp</dimen> <dimen name="dp_32">32dp</dimen> <dimen name="dp_33">33dp</dimen> <dimen name="dp_34">34dp</dimen> <dimen name="dp_35">35dp</dimen> <dimen name="dp_36">36dp</dimen> <dimen name="dp_37">37dp</dimen> <dimen name="dp_38">38dp</dimen> <dimen name="dp_39">39dp</dimen> <dimen name="dp_40">40dp</dimen> <dimen name="dp_41">41dp</dimen> <dimen name="dp_42">42dp</dimen> <dimen name="dp_43">43dp</dimen> <dimen name="dp_44">44dp</dimen> <dimen name="dp_45">45dp</dimen> <dimen name="dp_46">46dp</dimen> <dimen name="dp_47">47dp</dimen> <dimen name="dp_48">48dp</dimen> <dimen name="dp_49">49dp</dimen> <dimen name="dp_50">50dp</dimen> <dimen name="dp_51">51dp</dimen> <dimen name="dp_52">52dp</dimen> <dimen name="dp_53">53dp</dimen> <dimen name="dp_54">54dp</dimen> <dimen name="dp_55">55dp</dimen> <dimen name="dp_56">56dp</dimen> <dimen name="dp_57">57dp</dimen> <dimen name="dp_58">58dp</dimen> <dimen name="dp_59">59dp</dimen> <dimen name="dp_60">60dp</dimen> <dimen name="dp_61">61dp</dimen> <dimen name="dp_62">62dp</dimen> <dimen name="dp_63">63dp</dimen> <dimen name="dp_64">64dp</dimen> <dimen name="dp_65">65dp</dimen> <dimen name="dp_66">66dp</dimen> <dimen name="dp_67">67dp</dimen> <dimen name="dp_68">68dp</dimen> <dimen name="dp_69">69dp</dimen> <dimen name="dp_70">70dp</dimen> <dimen name="dp_71">71dp</dimen> <dimen name="dp_72">72dp</dimen> <dimen name="dp_73">73dp</dimen> <dimen name="dp_74">74dp</dimen> <dimen name="dp_75">75dp</dimen> <dimen name="dp_76">76dp</dimen> <dimen name="dp_77">77dp</dimen> <dimen name="dp_78">78dp</dimen> <dimen name="dp_79">79dp</dimen> <dimen name="dp_80">80dp</dimen> <dimen name="dp_81">81dp</dimen> <dimen name="dp_82">82dp</dimen> <dimen name="dp_83">83dp</dimen> <dimen name="dp_84">84dp</dimen> <dimen name="dp_85">85dp</dimen> <dimen name="dp_86">86dp</dimen> <dimen name="dp_87">87dp</dimen> <dimen name="dp_88">88dp</dimen> <dimen name="dp_89">89dp</dimen> <dimen name="dp_90">90dp</dimen> <dimen name="dp_91">91dp</dimen> ................... |
他们分别是配置文件,dimens文件样例。配置文件我们看注释就知道他是干什么的 了。我们默认创建的项目是没有dimens文件的,我们把这个样例dimens文件复制放在values下,如下图所示:
接着我们操作上述步骤,app------鼠标右键---------->选择ScreenMatch--------->selectModule(app)--->ok....。我们就会生成如下目录:
参考文章:
dp方式屏幕适配原理请看:http://blog.csdn.net/fesdgasdgasdg/article/details/52325590
插件源码请看:https://github.com/mengzhinan/ScreenMatch
Android屏幕适配dp、px两套解决办法 https://blog.csdn.net/fesdgasdgasdg/article/details/52325590
Android刘海屏适配
华为 :https://devcenter-test.huawei.com/consumer/cn/devservice/doc/50114
OPPO : https://open.oppomobile.com/service/message/detail?id=61876
官方文档:https://source.android.google.cn/compatibility/cdd?hl=zh-cn
VIVO :https://open.oppomobile.com/service/message/detail?id=61876
官方文档:https://source.android.google.cn/compatibility/cdd?hl=zh-cn
刘海屏适配可参考文章:
xiangzhihong https://blog.csdn.net/xiangzhihong8/article/details/80317682