Android Wear 开发 (一)

·        堆叠多张卡片:通知栏卡片的堆叠

·        语音回复:

Wear 上的UI开发

Android Wear apps用户界面不同于在手机设备上构建。需要遵循AndroidWear设计规范UI模式,以确保应用通过针对可穿戴设备而优化的一致用户体验。

UI模式主要通过以下方式实现:

  1. 卡片

  2. 倒计时和确认

  3. 长按消失

  4. 2d pickers

  5. 选择列表

Wearable UI Library是Android SDk中Google Repository的一部分,提供帮助你实现这些模式的类,并可以创建同时适配运行在圆形和方形屏幕设备上的布局。

定义布局

当创建android wear布局的时候,要考虑设备有两种屏幕,方形和圆形。任何位于屏幕角落的内容都会被圆形屏幕裁剪掉。

Wearable UI Library提供两种方式解决这个问题:

1、为圆形和方形屏幕的设备定义两套布局。在运行时检测设备屏幕并渲染不同的布局。

2、使用Wearable UILibrary中一种特殊的布局来包住你的布局。这个布局会根据设备屏幕来加载不同的布局文件。

典型的办法是第一种,如果布局简单可以直接使用第二种。

为圆形和方形屏幕定义不同的布局

Wearable UI Library中的WatchViewStub这个类可以让你为圆形和方形屏幕定义不同的布局。这个类会在运行时检测屏幕形状并渲染相应的布局。

1、在你的activity布局文件中添加WatchViewStub元素

2、使用rectLayout属性为方形屏幕指定布局文件

3、使用roundLayout属性为圆形屏幕指定布局文件

[java]

view plain

copy

print

?

  1. <android.support.wearable.view.WatchViewStub

  2. xmlns:android=”http://schemas.android.com/apk/res/android”

  3. xmlns:app=”http://schemas.android.com/apk/res-auto”

  4. xmlns:tools=”http://schemas.android.com/tools”

  5. android:id=”@+id/watch_view_stub”

  6. android:layout_width=”match_parent”

  7. android:layout_height=”match_parent”

  8. app:rectLayout=”@layout/rect_activity_wear”

  9. app:roundLayout=”@layout/round_activity_wear”>

  10. </android.support.wearable.view.WatchViewStub>

  11. @Override

  12. protected void onCreate(Bundle savedInstanceState) {

  13. super.onCreate(savedInstanceState);

  14. setContentView(R.layout.activity_wear);

  15. }

  16. 访问布局控件

  17. 渲染布局文件不是同步的,所以要设置一个回调来监听WatchViewStub渲染完成。

  18. @Override

  19. protected void onCreate(Bundle savedInstanceState) {

  20. super.onCreate(savedInstanceState);

  21. setContentView(R.layout.activity_wear);

  22. WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);

  23. stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {

  24. @Override public void onLayoutInflated(WatchViewStub stub) {

  25. // Now you can access your views

  26. TextView tv = (TextView) stub.findViewById(R.id.text);

  27. }

  28. });

  29. }

<android.support.wearable.view.WatchViewStub

xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:app=“http://schemas.android.com/apk/res-auto”

xmlns:tools=“http://schemas.android.com/tools”

android:id=“@+id/watch_view_stub”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:rectLayout=“@layout/rect_activity_wear”

app:roundLayout=“@layout/round_activity_wear”>

</android.support.wearable.view.WatchViewStub>

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值