Android 8.0 和support library 26

Andorid 8.0

  • 多个与电话有关的新权限:
    ANSWER_PHONE_CALLS
    允许您的应用通过编程方式接听呼入电话。要在您的应用中处理呼入电话,您可以使用 acceptRingingCall() 函数。
    READ_PHONE_NUMBERS 权限允许您的应用读取设备中存储的电话号码。
    这些权限均被划分为危险类别,属于 PHONE 权限组。

  • 指纹手势

  • 独立的音量调整
  • 画中画模式
  • 通知和桌面红点

Android Support Library 26

字体
1. 在res文件夹下创建font文件夹
2. 将font类型文件(如dacing.ttf)拷贝到此目录下
3. 或者将多个font文件创建成一个font族(font family)
4. TextView 通过设置属性使用:android:fontFamily=“@font/lalala”
Style 通过设置属性使用:@font/lobster
如果使用Support 库,需要使用对应的namespace
在代码中获取字体资源:Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);

字体可以在线下载,参考这里
需要 fontProvider ,创建FontsContractCompat 和 FontRequest,可能还需要证书,比较麻烦,但是不用占用apk大小
但是!!设备需要GooglePlay服务,呵呵

Emoji
API 19以上 版本,可获得兼容支持,遇到当前版本不识别的Emoji编码,可以自动通过library加载新表情包
新控件 :EmojiTextView代替TextView,用EmojiButton代替Button , 还有EmojiEditText

TextVeiw自动调整文字大小

<TextView
       android:layout_width="match_parent"
       android:layout_height="200dp"
       android:autoSizeTextType="uniform" />

TextView默认是开启自动调整文字大小的,我们可以在代码中通过
setAutoSizeTextTypeWithDefaults(AUTO_SIZE_TEXT_TYPE_NONE)来关闭
还可以调整 字体变化的幅度,也可以规范变化值列表

基于物理的动画
FlingAnimation(模拟摩擦,有一个初始速度,逐渐减慢

FlingAnimation(view,DynamicAnimation.TRANSLATION_Y).apply{
    setStartVelocity(5000f); //pixels per second
    friction = 1.5f; //摩擦系数
    start();
}

SpringAnimation(模拟弹簧,可以设置阻尼比,刚度,最后停下的位置等

SpringAnimation(view,SpringANimation.TRANSLATION.Y,0f).apply{
   spring.apply{
     dampingRatio = SpringForce.DAMPING>RATIO>LOW>BOUNCY;
     stiffness = SpringForce.STIFFNESS_LOW;
     finalPosition = 0f;
   }
    setStartVelocity(20000f);
    start();
}

你可能感兴趣的:(自定义控件绘制,笔记)