Android Material Design-Defining Shadows and Clipping Views(定义阴影和裁剪视图)-(四)

本文详细介绍了Android Material Design中阴影和高程的概念,包括如何在布局中设置视图控件的高程,自定义视图阴影和轮廓的方法,以及如何裁剪视图以改变其形状。

转载请注明出处:http://blog.youkuaiyun.com/bbld_/article/details/40539131

翻译自:http://developer.android.com/training/material/shadows-clipping.html 


Material Design引入了深度的UI元素。深入帮助用户了解每个元素的相对重要性,并把注意力集中到手头上正在做的事情。

一个视图(控件),由Z属性表示的高程(elevation),决定了它的影子的大小:有更高的Z值得视图就具有更大的阴影。视图仅仅只投下在Z=0平面上的阴影;它们并不投影在在它们下面和上面Z=0平面的其它视图中。

具有较高Z值视图(控件)会挡住较低Z值的视图。但是,一个视图的Z值并不会影响到该视图的大小。

当控件暂时越过平面视图执行某些操作时,高程对创建动画是有用的。

 

在你的视图(控件)中指定高程(elevation)

一个视图的Z值由两部分组成:高程和转换。高程是静态分量,转换是用于动画的。

Z = elevation +translationZ


                                     图一:具有不同elevation属性值的视图控件的阴影

要在布局中设置视图控件的高程,使用android:elevation属性。要在代码中去设置视图的高程,使用View.setElevation()方法。

要设置一个视图的转换(translation),使用View.setTranslationZ()方法。

新的ViewPropertyAnimator.z()ViewPropertyAnimator.translationZ()方法能让你轻松地进行视图高程的更改。欲了解更多的信息,请参阅请参阅ViewPropertyAnimator的API文档PropertyAnimation(属性动画)的开发者指引。

你也可以使用StateListAnimator以声明方式来指定这些动画。对于当状态改变时触发动画的一些情况,这是特别有用的,比如用户按下了一个按钮。更多的信息,请参阅Animate View State Changes(Defining Custom Animations(自定义动画))

Z值是像X和Y值那样,在同一个(图形)单位中测量的。

 

自定义视图阴影和轮廓

一个视图的背景绘制决定了其阴影的默认形状。轮廓表示图形对象的外部形状,并限定了触摸反馈的波纹(ripple)区域。

请看下面的视图(TextView),定义了背景的图片资源:

<TextView
    android:id="@+id/myview"
    ...
    android:elevation="2dp"
    android:background="@drawable/myrect" />

背景资源被定义为带有圆角的矩形。

<!-- res/drawable/myrect.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <solid android:color="#42000000" />
    <corners android:radius="5dp" />
</shape>

该视图控件蒙上了带有圆角的阴影,因为背景图片资源定义了这个视图的轮廓。提供自定义的轮廓去覆盖视图阴影的默认形状。

在你的代码中自定义视图的轮廓:

1. 继承ViewOutlineProvider

2.  重写getOutline() getOutline()方法

3.  使用View.setOutlineProvider()方法分配新的轮廓给你的视图

通过Outline类里的方法,你可以创建带圆角的椭圆和矩形形状。视图的默认轮廓提供者(provider)是从视图的背景来获得其轮廓的。为了防止为视图蒙上阴影,设置它的轮廓提供者为空。


裁剪视图

裁剪视图能让你轻松地改变视图的形状。你可以为了一致性而使用其它的设计元素裁剪视图或者为了响应用户的输入改变视图的形状。你可以使用View.setClipToOutline()法或者使用android:clipToOutline属性来裁剪视图自己的轮廓形状。只有矩形、圆形、圆角矩形的轮廓支持裁剪,这是由Outline.canClip()方法来决定的。

为了裁剪视图得到指定的形状的图像资源,设置视图的背景资源(如上面所示),并调用View.setClipToOutline方法。

裁剪视图是一个代价较高的操作,所以不要使形状看起来生动而去裁剪视图,实现这样的效果你应该使用Reveal Effect(Defining Custom Animations(自定义动画))动画。




demo比较简单,就上面的两片代码就不贴上来了。











物联网通信协议测试是保障各类设备间实现可靠数据交互的核心环节。在众多适用于物联网的通信协议中,MQTT(消息队列遥测传输)以其设计简洁与低能耗的优势,获得了广泛应用。为确保MQTT客户端与服务端的实现严格遵循既定标准,并具备良好的互操作性,实施系统化的测试验证至关重要。 为此,采用TTCN-3(树表结合表示法第3版)这一国际标准化测试语言构建的自动化测试框架被引入。该语言擅长表达复杂的测试逻辑与数据结构,同时保持了代码的清晰度与可维护性。基于此框架开发的MQTT协议一致性验证套件,旨在自动化地检验MQTT实现是否完全符合协议规范,并验证其与Eclipse基金会及欧洲电信标准化协会(ETSI)所发布的相关标准的兼容性。这两个组织在物联网通信领域具有广泛影响力,其标准常被视为行业重要参考。 MQTT协议本身存在多个迭代版本,例如3.1、3.1.1以及功能更为丰富的5.0版。一套完备的测试工具必须能够覆盖对这些不同版本的验证,以确保基于各版本开发的设备与应用均能满足一致的质量与可靠性要求,这对于物联网生态的长期稳定运行具有基础性意义。 本资源包内包含核心测试框架文件、一份概述性介绍文档以及一份附加资源文档。这些材料共同提供了关于测试套件功能、应用方法及可能包含的扩展工具或示例的详细信息,旨在协助用户快速理解并部署该测试解决方案。 综上所述,一个基于TTCN-3的高效自动化测试框架,为执行全面、标准的MQTT协议一致性验证提供了理想的技术路径。通过此类专业测试套件,开发人员能够有效确保其MQTT实现的规范符合性与系统兼容性,从而为构建稳定、安全的物联网通信环境奠定坚实基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
<think>根据用户当前的问题“我想了解 cell-defining ssb 的周期”,结合之前系统级指令中关于5G NR的讨论(特别是SSB相关内容),可以确定用户询问的是5G NR系统中Cell-Defining SSB(同步信号块)的周期。 在5G NR中,SSB(特别是其中的PSS/SSS)用于小区搜索初始接入。Cell-Defining SSB是指UE用于识别小区并获取系统基本信息的SSB。其周期配置与网络部署相关,但标准定义了多种可能的周期值。 关键点: 1. 标准中SSB周期可配置为:5ms, 10ms, 20ms, 40ms, 80ms, 160ms。 2. 实际周期取决于网络配置频段(如FR1FR2的默认周期可能不同)。 3. 在初始接入时,UE会通过盲检SSB位置(基于可能的周期)来同步。 需要向用户强调:周期是可配置的,但存在标准定义的选项。同时要关联之前讨论的SSB突发集(burst set)概念,因为周期配置会影响突发集的出现频率。 回答结构: - 先明确Cell-Defining SSB的定义作用。 - 列举可能的周期值,并说明配置依据。 - 补充说明周期如何影响UE的小区搜索过程。 - 最后生成相关问题。 注意引用格式:由于用户提到“参考站内引用”,但未提供具体引用源,因此可引用3GPP标准(如38.213)作为通用参考。 </think> 在5G NR(新空口)系统中,**Cell-Defining SSB(同步信号块)的周期**是可配置的,其取值范围由3GPP标准定义。关键细节如下: ### 1. **周期配置范围** - SSB周期标准选项包括: $$5 \text{ms}, \quad 10 \text{ms}, \quad 20 \text{ms}, \quad 40 \text{ms}, \quad 80 \text{ms}, \quad 160 \text{ms}$$ - **默认值**: 低频段(FR1,Sub-6 GHz)通常为 $20 \text{ms}$,高频段(FR2,毫米波)通常为 $5 \text{ms}$(因信道条件更苛刻)[^1]。 ### 2. **周期选择依据** - **网络需求**:高移动性场景需更短周期(如 $5 \text{ms}$)以快速同步。 - **能效考量**:静态场景可用更长周期(如 $160 \text{ms}$)降低功耗。 - **频段特性**:毫米波频段因波束易受阻,倾向短周期保障链路可靠性[^2]。 ### 3. **SSB突发集(Burst Set)与周期关系** - 每个周期内,SSB以"突发集"形式发送(持续 $5 \text{ms}$),包含多个波束赋形的SSB实例。 - 例如:周期 $20 \text{ms}$ 时,每 $20 \text{ms}$ 重复一次SSB突发集传输(下图以 $T_{\text{SSB}}$ 表示周期): ``` 时间轴:0ms 5ms 10ms 15ms 20ms [SSB] ... ... ... [SSB] ... ... ``` ### 4. **UE行为与周期关联** - UE通过盲检SSB获取小区ID、定时信息等。周期越短,UE接入速度越快,但搜索复杂度略增。 - 周期配置通过MIB(主信息块)中的 `ssb-periodicityServingCell` 字段指示,UE据此调整搜索策略[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值