博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Xamarin.Android】Android支持库V26概述
阅读量:6086 次
发布时间:2019-06-20

本文共 3331 字,大约阅读时间需要 11 分钟。

Android支持库V26为我们的Android应用程序带来了许多新的特征,包括字体资源,可下载字体、表情符号的支持,一个自适应尺寸的TextView,物理驱动的动画,通过弹簧和一扔,向后兼容的动画的载体,和从minSdkVision14开始增加的一个一个苗条的库。如果不是,你所有的应用程序的minSdkVersion现在应该设置为14。

如果你不熟悉Android支持库,您需要编译与支持库版本相同的Android API级别。换句话说,确保你有你的 设置为8.0 (API 26) 来再次便宜Android支持库V26。到Android 8的支持,在这里你可以按照安装说明:

  • Visual Studio 2017 version 15.4.0 Preview 3:
  • Visual Studio 2017 for Mac:
  • Visual Studio 2015 Tools for Xamarin:

XML中的字体支持

你现在可以把字体的新字体资源文件夹。使用 Resources.GetFont 或者 ResourcesCompat.GetFont 在你的应用中加载资源。

例如 在Resources/font文件夹中的XML文件中定义一个字体:

 

在View中使用字体资源:

 

NuGet:

要求:

API 14+

可下载的字体

有一个新的FontsContractCompat类,允许你从一个字体提供者下载而不是捆绑他们在你的应用程序请求的字体。你可以使用字体供应商通过谷歌的字体(800 +字体)。

用这个,首先创建一个FontRequest:

FontRequest request = new FontRequest(    "com.google.android.gms.fonts",    "com.google.android.gms",    query,    Resource.Array.com_google_android_gms_fonts_certs);

其次,你需要登记一个FontRequestCallback实现OnTypefaceRetrieved(Android.Graphics.Typeface typeface)和ontypefacerequestfailed(int的原因)。我们已经创建了一个你可以在这个例子中浏览的样例:

FontsContractCompat.FontRequestCallback callback = new FontRequestCallbackImpl{    mActivity = this,    mDownloadableFontTextView = DownloadableFontTextView,    mRequestDownloadButton = RequestDownloadButton,    mProgressBar = progressBar};

最后,您需要请求字体:

FontsContractCompat.RequestFont(this, request, callback, GetHandlerThreadHandler());

您还可以直接用xml请求字体:

 

NuGet:

样例工程:

要求

API 14+

Google Play Services 11+

表情符号的兼容性

EmojiCompat持库允许你的设备是最新的最新的表情符号不需要更新Android操作系统。这可以防止那些讨厌的豆腐的特点(□)显示!

EmojiCompat有两个主要库: downloadabl或bundled

可下载的

在博客的可下载字体一节有简要的概述,你首先要构建一个FontRequest来创建一个FontRequestEmojiCompatConfig。

EmojiCompat.Config配置:var fontRequest = new FontRequest(    "com.google.android.gms.fonts",    "com.google.android.gms",    "Noto Color Emoji Compat",    Resource.Array.com_google_android_gms_fonts_certs);config = new FontRequestEmojiCompatConfig(this, fontRequest)    .SetReplaceAll(true)    .RegisterInitCallback(new InitCallbackImpl());

NuGet:

Bundled

捆绑使生活更容易在约7 MB的捆绑字体的成本。所需的只是创建一个BundledEmojiCompatConfig:

EmojiCompat.Config config;config = new BundledEmojiCompatConfig(this);

NuGet:

表情部件

EmojiCompat库我们提供了三个主要部件显示表情

EmojiTextView, EmojiEditTExt, and EmojiButton

样例工程:

要求

API 19+

文本自动调整大小

当容器变大的时候TextView会自动增大文本大小。有三种方法来设置TextView的自动适应尺寸,说明如下:

默认

首先声明android:autoSizeTextType为uniform.

 

粒度

你也可以为你的TextView定义一个从最小到最大文本尺寸的范围。它会在你的步骤的粒度定义的增量增加。

 

预设尺寸

最后,你可以指定TextView能够自动调整大小的所有的值。你可以指定一个预设尺寸阵列资源:

10sp    12sp    20sp    40sp    100sp

现在您只需要指定 android:autoSizePresetSizes值,我们已经创建的数组:

 

NuGet:

要求:

API 14+

动态动画

现在你可以使用基于速度的动画而不是持续的。这些动画都是自然的,与物理模拟甩手势或弹簧。

创建我们的第一个动态动画,创建一个包含View,ViewProperty和finalPosition的SpringAnimation对象。

SpringAnimation animX = new SpringAnimation(box, DynamicAnimation.TranslationX, 0);

还有,你可以设置弹簧的两个主要概念:Stiffness 和DampingRatio.

Stiffness 决定如何快速的弹簧会弹回来,当阻尼比确定弹簧弹力。

animX.Spring.SetStiffness(Stiffness);animX.Spring.SetDampingRatio(Damping);

你也可以设置你的动画中的StartVelocity和Start!

animX.SetStartVelocity(velocityTracker.XVelocity);animX.Start();

img_9e91e21905a2f5d665d3ca06ddfb88aa.gif

NuGet:

样例工程:

要求

API 14+

AnimatedVectorDrawableCompat (Bonus)

如果你不知道AnimatedVectorDrawableCompat,这是一个非常漂亮的库,用于在路径和路径之间进行渐变,从而创建令人惊叹的动画、徽标转换等等。这些都已经回迁到14的API,它允许这些美丽的动画载体上运行的旧设备。

img_883c26373cd4196835f6b1b89b109223.gif

你可以通过XML创建一个创建你自己的漂亮的动画载体,创建一个 元素并附加 到 定义中。如果你不是最好的动画师,你可以从这里开始以Alex Lockwood的工具:

img_4fe76bfefcb9c941c03ee93ea31a623a.gif

NuGet:

样例工程:

要求:

API 14+

总结

Android在支持库中有许多丰富的特性,可以在应用程序中发挥作用。这些功能通常是向后兼容的minSdkVersion指定的支持库定义的例子。现在是你的机会去探索什么的支持库可以为您提供应用!

转载地址:http://vcuwa.baihongyu.com/

你可能感兴趣的文章
React Native 极光推送填坑(ios)
查看>>
Terratest:一个用于自动化基础设施测试的开源Go库
查看>>
修改Windows远程终端默认端口,让服务器更安全
查看>>
扩展器必须,SAS 2.0未必(SAS挺进中端存储系统之三)
查看>>
Eclipse遇到Initializing Java Tooling解决办法
查看>>
while((ch = getchar()) != '\n')
查看>>
好程序员web前端分享JS检查浏览器类型和版本
查看>>
Oracle DG 逻辑Standby数据同步性能优化
查看>>
exchange 2010 队列删除
查看>>
「翻译」逐步替换Sass
查看>>
H5实现全屏与F11全屏
查看>>
处理excel表的列
查看>>
C#数据采集类
查看>>
quicksort
查看>>
【BZOJ2019】nim
查看>>
LINUX内核调试过程
查看>>
【HDOJ】3553 Just a String
查看>>
Java 集合深入理解(7):ArrayList
查看>>
2019年春季学期第四周作业
查看>>
linux环境配置
查看>>