美文网首页
2019-11-28 -今日头条屏幕适配方案,theme属性定制

2019-11-28 -今日头条屏幕适配方案,theme属性定制

作者: ambe_gzy | 来源:发表于2019-11-28 19:51 被阅读0次
    • 今日头条的屏幕适配

    需提前掌握名称含义

    名称 含义
    px 像素,1px代表屏幕上的一个像素点
    dp 设备无关像素
    dpi 每英寸像素数量,计算公式自行百度
    density 用于px与dp的转化 px=density*dp、density = dpi/160,为什么除以160,自行百度
    • 今日头条的适配实现
      核心思想:通过修改density使得不同尺寸的手机(即不同px)计算得出的dp与设计图的一致,以实现在各尺寸上的手机的布局均能够接近设计图的布局
      不足:因为修改的是density,可能会引起一些第三方库的页面和系统组件布局改变,可能会引起文字大小的改变。
      解决方案:已有现成的库,能针对单独的activity改变其适配标准(如将某个页面替换回默认的density等)。
      github:https://github.com/JessYanCoding/AndroidAutoSize

    参考:
    Android开发中dp、dpi、px的区别(转) - 乐学习 - 博客园

    今日头条屏幕适配方案终极版正式发布!

    骚年你的屏幕适配方式该升级了!-SmallestWidth 限定符适配方案

    骚年你的屏幕适配方式该升级了!-今日头条适配方案

    一种极低成本的Android屏幕适配方式


    • 用好android:theme属性,定制主题样式

    • 提问
      1)什么时候应该使用Theme.AppCompat vs ThemeOverlay.AppCompat?
      Theme.AppCompat用于为整个应用程序设置全局主题。ThemeOverlay.AppCompat用于覆盖(或“覆盖”)特定视图的主题,特别是工具栏参考1
      2)待添加..

    • 你应该熟悉的属性

    属性 使用对象 作用
    colorPrimaryDark StatusBar 状态栏 状态栏的背景色
    windowBackground window 页面背景色
    navigationBarColor 底部导航栏 底部导航栏颜色
    colorPrimary ActionBar Appbar 的背景色,通常也是app的主题色调
    textColorPrimary Toobar/EditText/Spinner Toolbar上的title颜色,EditText上的textcolor,
    colorAccent EditText/CheckBox/RadioButton/SwitchCompat/Spinner 各个控制控件的选中颜色
    colorControlNormal CheckBox/RadioButton/Spinner 各个控制控件的默认颜色
    colorControlActivated colorAccent 的替代者 比如对于 CheckBox 和 RadioButton 的 checked 状态,colorControlActivated 属性会覆盖 colorAccent 属性的对应颜色
    colorControlHighlight 所有可点击的view 所有可点击 Views 触摸状态下的 Ripple(涟漪)效果。仅作用于 Lollipop (5.0)及更高版本。
    colorButtonNormal button Button normal 状态下的背景色。注意,这种设置与 Button 的 android:background 属性改变背景色不同的是,前者在 Lollipop 及更高版本上会让 Button 依旧保持阴影和 Ripple 触摸效果。

    • 带背景颜色的水波纹点击效果

    <?xml version="1.0" encoding="utf-8"?>  
    <ripple xmlns:android="http://schemas.android.com/apk/res/android" 
            android:color="@color/gray">    <!--波纹颜色-->   
       <item>
            <selector>
                 <!-- 未点击背景图-->
                <item
                    android:drawable="@drawable/normal_bg"
                    android:state_pressed="false" />
                 <!-- 点击背景图-->
                <item
                    android:drawable="@drawable/select_bg"
                    android:state_pressed="true" />
            </selector>
        </item>
    </ripple>
    

    今天的收获

    • theme属性的使用,通过修改theme的属性值修改的background的值、TextColor、toolbar的背景及其title的颜色等;


      修改后的属性
    • 看了一些屏幕适配的文章,对屏幕适配有了更深的了解,以后在UI界面的开发会考虑不同机型可能出现的问题;

    • 发现简书能用markdown语法写文章


    相关文章

      网友评论

          本文标题:2019-11-28 -今日头条屏幕适配方案,theme属性定制

          本文链接:https://www.haomeiwen.com/subject/tikbwctx.html