ScreenMatch屏幕适配及刘海屏适配处理 Android刘海屏适配 Android适配刘海屏 https://blog.csdn.net/li15225271052/article/details/79967647

1.下载安装

    File------>Settings----------->Plugin---------->Browse Repositories-------------->搜索screenMatch--->install.



点击Browse Repositories 后,弹出如下界面,我们只需按提示操作即可,安装完成重启AndroidStudio。





2.使用

在你的项目例如app上右键,即可看到我们刚才安装的插件screenMatch,如下图所示:



选择ScreenMatch后,弹出对话框,给我们提示让我选择我们要适配的module,如下图,这里我只有一个模块。



选择OK我们会发现,如下图这样的提示,证明我们操作成功了。




点击OK,我们会项目的目录下发现screenMatch.properties,screenMatch_example_dimens.xml文件,那么我分别看他们是什么,如下:


screenMatch.properties
############################################################################
# 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



screenMatch_example_dimens.xml
<?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

Android适配刘海屏 https://blog.csdn.net/li15225271052/article/details/79967647


猜你喜欢

转载自blog.csdn.net/u014133119/article/details/80894309