Android怎么自定义布局,Android 创建自定义的布局
为可穿戴设备创建布局是和手持设备是一样的,除了我们需要为屏幕的尺寸和glanceability进行设计。但是不要期望通过搬迁手持应用的功能与UI到可穿戴上会有一个好的用户体验。仅仅在有需要的时候,我们才应该创建自定义的布局。请参考可穿戴设备的design guidelines学习如何设计一个优秀的可穿戴应用。
创建自定义Notification
通常来说,我们应该在手持应用上创建好notification,然后让它自动同步到可穿戴设备上。这让我们只需要创建一次notification,然后可以在不同类型的设备(不仅仅是可穿戴设备,也包含车载设备与电视)上进行显示,免去为不同设备进行重新设计。
如果标准的notification风格无法满足我们的需求(例如NotificationCompat.BigTextStyle 或者 NotificationCompat.InboxStyle),我们可以显示一个使用自定义布局的activity。我们只可以在可穿戴设备上创建并处理自定义的notification,同时系统不会将这些notification同步到手持设备上。
Note: 当在可穿戴设备上创建自定义的notification时,我们可以使用标准notification API(API Level 20),不需要使用Support Library。
为了创建自定义的notification,步骤如下:创建布局并设置这个布局为需要显示的activity的content view:public void onCreate(Bundle bundle){
...
setContentView(R.layout.notification_activity);
}
为了使得activity能够显示在可穿戴设备上,需要在manifest文件中为activity定义必须的属性。我们需要把activity声明为exportable,embeddable以及拥有一个空的task affinity。我们也推荐把activity的主题设置为Theme.DeviceDefault.Light。例如:
android:exported="true"
android:allowEmbedded="true"
android:taskAffinity=""
android:theme="@android:style/Theme.DeviceDefault.Light" />
为activity创建PendingIntent,例如::Intent notificationIntent = new Intent(this, NotificationActivity.class);
PendingIntent notificationPendingIntent = PendingIntent.getActivity(this, 0, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
创建Notification并执行setDisplayIntent())方法,参数是前面创建的PendingIntent。当用户查看这个notification时,系统使用这个PendingIntent来启动activity。
使用notify())方法触发notification。Note: 当notification呈现在主页时,系统会根据notification的语义,使用一个标准的模板来呈现它。这个模板可以在所有的表盘上进行显示。当用户往上滑动notification时,将会看到为这个notification准备的自定义的activity。
使用Wearable UI库创建布局
当我们使用Android Studio的工程向导创建一个Wearable应用的时候,会自动包含Wearable UI库。你也可以通过给build.gradle文件添加下面的依赖声明把库文件添加到项目:dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.support:wearable:+'
compile 'com.google.android.gms:play-services-wearable:+'
}
这个库文件帮助我们建立为可穿戴设备设计的UI。更详细的介绍请看为可穿戴设备创建自定义UI。
下面是一些Wearable UI库中主要的类:BoxInsetLayout - 一个能够感知屏幕的形状并把子控件居中摆放在一个圆形屏幕的FrameLayout。
CardFragment - 一个能够可拉伸,垂直可滑动卡片的fragment。
CircledImageView - 一个圆形的image view。
ConfirmationActivity - 一个在用户完成一个操作之后用来显示确认动画的activity。
CrossFadeDrawable - 一个drawable。该drawable包含两个子drawable和提供方法来调整这两个子drawable的融合方式。
DelayedConfirmationView - 一个view。提供一个圆形倒计时器,这个计时器通常用于在一段短暂的延迟结束后自动确认某个操作。
DismissOverlayView - 一个用来实现长按消失的View。
DotsPageIndicator - 一个为GridViewPager提供的指示标记,用于指定当前页面相对于所有页面的位置。
GridViewPager - 一个可以横向与纵向滑动的局部控制器。你需要提供一个GridPagerAdapter用来生成显示页面的数据。
GridPagerAdapter - 一个提供给GridViewPager显示页面的adapter。
FragmentGridPagerAdapter - 一个将每个页面表示为一个fragment的GridPagerAdapter实现。
WatchViewStub - 一个可以根据屏幕的形状生成特定布局的类。
WearableListView - 一个针对可穿戴设备优化过后的ListView。它会垂直的显示列表内容,并在用户停止滑动时自动显示最靠近的Item。
Wear UI library API reference
这个参考文献解释了如何详细地使用每个UI组件。查看Wear API reference documentation了解上述类的用法。
为用于Eclipse ADT下载Wearable UI库
如果你正在使用Eclipse ADT,那么下载Wearable UI library将Wearable UI库导入到你的工程当中。Note: 我们推荐使用Android Studio来开发可穿戴应用。
Android怎么自定义布局,Android 创建自定义的布局相关推荐
- Android 开发 -- 开发第一个安卓程序、Android UI开发(布局的创建:相对布局和线性布局、控件单位:px pt dp sp、常用控件 、常见对话框、ListView)
文章目录 1. 开发第一个Hello World程序 1.1 开发程序 1.2 认识程序中的文件 1.3 Android程序结构 1.4 安卓程序打包 2. Android UI开发 2.1 布局的创 ...
- 【Flutter】自定义 Flutter 组件 ( 创建自定义 StatelessWidget、StatefulWidget 组件 | 调用自定义组件 )
文章目录 一.Flutter 组件简介 二.Flutter 自定义 StatelessWidget 组件流程 1.导入父类包 2.选择继承的父类 3.设置成员变量及构造函数 4.重写 build 方法 ...
- linux新建自定义命令,Linux 创建自定义命令
Linux 创建自定义命令 Linux 可以创建自定义使用命令 这里我们采取使用"alias"命令.这里我们首先了解两个文件,通过这两个文件我们可以根据环境配置相应的自定义命令. ...
- 纷享销客CRM自定义函数:创建自定义对象数据
// 构造主对象 Map data = ["name": "第一条测试数据","field_3f5kI__c": "12143&q ...
- 绝地求生自定义服务器购买,绝地求生怎么创建自定义房间_创建自定义房间方法教程...
本文给大家带来绝地求生创建自定义房间的方法教程,绝地求生开放了自定义系统,玩家可以自主创建房间了.有些玩家不知道怎么创建,一起来了解一下吧,希望能帮到大家. 绝地求生创建自定义房间教程: - 进入自定 ...
- 绝地求生刺激战场自定义服务器,绝地求生刺激战场自定义房间怎么创建 自定义房间创建方法...
腾讯光子&PUBG联合出品,正版<绝地求生>手游!百人空投,荒岛求生!虚幻4引擎研发,次世代完美画质,重现端游视听感受:8000Mx8000M正版... 类型:飞行射击 大小:11 ...
- 自定义服务器主播,绝地求生大逃杀自定义模式怎么创建 自定义服务器教程
绝地求生是一款目前PC端非常火爆的大逃杀类游戏,这款吃鸡游戏火爆程度现已经蔓延到了世界各地,现在如果你不玩吃鸡游戏,都不好意思说自己玩过游戏.那么在今天这篇文章中,小编就给大家重点讲的是,这款游戏目前 ...
- android 自定义banner,Android项目 引入Banner开源库(轮播图)
Banner开源库是什么? Banner 是 Android广告图片轮播控件,内部基于ViewPager2实现,Indicator和UI都可以自定义. 怎么使用 Banner 开源库? 1.在项目\a ...
- android获取其他app布局,android - 如何从App的(布局)XML变量中获取Manifest版本号?...
android - 如何从App的(布局)XML变量中获取Manifest版本号? 我想有一种方法在代码的主要部分引用项目的清单版本号. 到目前为止我一直在做的是将String XML文件中的版本号链 ...
- html5创建自定义标签,在html中创建自定义标签
创建并使用自定义标签 Web Components 标准非常重要的一个特性是,它使开发者能够将HTML页面的功能封装为 custom elements(自定义标签),本篇介绍使用 CustomElem ...
最新文章
- 010-012列表:一个打了激素的数组
- Java中的策略模式实例教程
- 操作系统 第一章【操作系统引论】【MOOC答案】
- 移动端下网页border:1px显示
- mysql varchar(20)_MySQL中采用类型varchar(20)和varchar(255)对性能上的影响
- 关于设计模式的感悟2
- php怎么在html上得到input值,怎么把一個php頁面的值傳到另一個html表單中的input里面去...
- Block Formatting Contexts(块级格式化上下文)
- php--------使用js生成二维码
- DBA和开发同事的一些代沟(一)
- java缩小pdf,如何使用Java缩小PDF文档中的内容?
- java 注入为空_Spring @Autowired 注入为 null
- 【码学堂】教师如何在码学堂上组织教学活动?
- Python每日一记129列表换行
- Android打地鼠小游戏案例
- Android自定义输入法软键盘
- php寻仙记,wap寻仙记
- 我们都忽略了Html5的力量,如果只看成一种技术就大错特错了!
- Cannot download sources Sources not found for
- 淘宝接口API开发 taobao代购系统API接口调用