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

  • 今日头条的屏幕适配

需提前掌握名称含义

名称 含义
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 触摸效果。
  • 资料
    github theme主题属性含义参考: Android Lollipop Widget Tinting Guide
    Android Theme.AppCompat 中,你应该熟悉的颜色属性
    Android Lollipop Widget Tinting Guide

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

  
       
   
        
             
            
             
            
        
    


今天的收获

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


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

  • 发现能用markdown语法写文章


你可能感兴趣的:(2019-11-28 -今日头条屏幕适配方案,theme属性定制主题样式)