Android---App Widget(五)
尺寸调整指南
当一个Widget被锁屏所持有时,Android框架会忽略minWidth、minHeight、minResizeWidth和minResizeHeight属性字段。如果该Widget同时也可以放置到主屏上,那么这些属性字段依然需要,因为在主屏上会使用它们,但是针对锁屏它们会被忽略。
锁屏Widget的宽度始终是填充在被提供的空间中,它的高度有以下选项:
1. 如果Widget没有标记它的垂直尺寸可调(android:resizeMode=”vertical”),那么它的高度将始终是”small”模式:
在电话的纵向模式中,”small”被定义为显示解锁UI后的剩余空间;
在平板和横向的电话中,”small”是每个设备的基本设置。
2. 如果Widget被标记为垂直尺寸可调,那么在显示解锁UI的纵向电话上,Widget的高度会使用”small”模式。在所有其他情况下,Widget会调整高度以便填充到可用的高度。
使用带有集合的App Widget
Android3.0以后引入了带有集合的App Widget。这些类型的App Widget使用RemoteViewService来显示由远程数据所返回的数据集合,如来自contentprovider的数据。由RemoteViewsService提供的数据会被显示在下列类型之一的View中,我们把这些View叫做“集合View”:
在一个垂直滚动的列表中显示数据的View。例如,Gmail的App Widget
在一个二维的可滚动的网格中显示数据的View。例如,Bookmarks的App Widget
一个堆放卡片的View(有点象关系网),用户可向下或向上来抽取卡片,以便分别的的看前一张或下一张卡片。例如,YouTube和Books中包含的App Widget。
一个支持简单ViewAnimator的适配器View,它可以在两个或更多的View之间产生动画。每次只显示一个子View。
在上述的View中,会显示由远程数据所返回的数据集。这就意味着它们要使用一个Adapter把数据跟用户界面绑定。Adapter会把数据集中的每个数据项绑定到每个View对象上。因为这些集合View是由Adapter所支持的,所以Android框架必须包含额外的架构来支持在App Widget中使用它们。在App Widget的内容中,Adapter会被RemoteViewsFactory替代,它只是简单的封装了Adapter的接口。当请求集合中的一个特殊项目时,RemoteViewsFactory会给集合创建并返回一个RemoteViews对象。为了在你的App Widget中包含一个集合View,你必须要实现RemoteViewsService和RemoteViewsFactory接口。
RemoteViewsService是一个服务,它允许远程的适配器来请求RemoteViews对象。
RemoteViewsFactory是一个在集合View和View相关的数据之间的适配器接口,以下代码代码来自StackView Widget示例,它是你用于实现服务和接口的样板代码:
publicclassStackWidgetServiceextendsRemoteViewsService{
@Override
public RemoteViewsFactoryonGetViewFactory(Intent intent) {
return new StackRemoteViewsFactory(this.getApplicationContext(), intent);
}
}
class StackRemoteViewsFactory implements RemoteViewsService.RemoteViewsFactory {
//... include adapter-like methods here. See the StackViewWidget sample.
}
相关文章
- 安卓逆向_8 --- Android 调试工具 DDMS 和 Monitor ( 去掉 "车来了" app 的广告 )
- Android 自己主动化測试(3)<monkeyrunner> 依据ID查找对象&touch&type (python)
- 《大话移动APP测试:Android与iOS应用测试指南》
- Android App Selinux seapp权限详解
- 技术分享 | app自动化测试(Android)-- Capability 使用进阶
- 谷歌发布基于机器学习的Android APP安全检测系统:Google Play Protect
- Android wifi上网跟4G上网的区别
- Android基础总结(八)Service
- android CoordinatorLayout使用
- Android 完美退出 App (Exit)
- android 设置EditText光标位置
- Android应用程序消息处理机制(Looper、Handler)分析
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- Android GridView 分页加载数据
- 解决 android.support.v7.widget.GridLayout 使用 xmlns:app 出现 error 的问题
- Android开发怎么让自己的APP UI漂亮、大方(配色篇二)
- android 通过socket获取IP
- APP安全测评checklist---Android
- 如何设计Android App测试用例
- android聊天app在TextView增加头像功能
- android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果
- Android单元测试与日志输出
- Android測试APP工具(一)
- 【Android】内存卡图片读取器,图库app
- Android自注-15-Activity生命周期
- 怎么样android app正在使用STL库
- Lua学习 2) —— Android与Lua互调
- Android框架Volley之:ImageRequest请求实现图片加载
- 教我兄弟学Android逆向10 静态分析反调试apk
- 超简单一行代码实现应用双开,仿照微信双开、QQ双开等实现app应用双开,即采用Android插件化开发在免安装情况下加载使用原生app
- Android BLE Scan failed, reason app registration failed for UUID