android wearable 研究

2023-12-26 15:30
文章标签 android 研究 wearable

本文主要是介绍android wearable 研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

android 4.4W.2是用于智能手表开发,建议用android studio开发,不过也可以用eclipse,因为是新系统,所以网上的demo比较少。只有在developer上可以看到几个简单的demo,但是需要翻墙,我把开发文档都保存下来:

http://download.csdn.net/detail/chaoyue0071/8369241

http://download.csdn.net/detail/chaoyue0071/8369241

开发者链接:http://developer.android.com/training/building-wearables.html

针对手表小屏幕的关系,android 有一套新的ui库去适配,具体sample可以用 sdk manager管理下载

这个库可以帮你专为可穿戴设备构建UI,一些主要的类包括:

BoxInsetLayout - 一个FrameLayout ,可以自适应屏幕形状,可以把子View填充进屏幕的中间。

CardFragment  -  一个可扩展内容的Fragment,可垂直滚动的卡片

CircledImageView - 圆形的ImageView

ConfirmationActivity - 一个Activity,当用户完成某个操作的时候 会有确认动画

DismissOverlayView - 一个实现了长按消失的view

GridViewPager - 一个可以允许用户垂直和水平滑动页面的控件,可以实现一个GridPagerAdapter 来展现数据

WatchViewStub - 根据屏幕的形状来渲染一个特殊的布局的类

WearableListView - 专门为小屏幕的可穿戴设备而优化的listview,显示一个可垂直滚动的列表。当用户停止滑动的时候,会自动将最近的项吸附住。

用eclipse可以开发,等下会附录下载地址

以wearablelistview为例开发

WearableListView是适用于android小型设备如智能手表显示列表的组件,可以村子滚动,非常方便的在只能手表上显示列表控件,每次显示三个列表在屏幕中间位置。

它继承RecyclerView,实现了OnScrollListener接口。

 

view source print ?
1. public class WearableListView extends android.support.v7.widget.RecyclerView
2. implements android.support.v7.widget.RecyclerView.OnScrollListener {
3.  
4. ….
5. ….
6. }
下面是使用的例子

 

\

 

view source print ?
01. package com.technotalkative.wearablelistviewdemo;
02.  
03. import android.app.Activity;
04. import android.content.Context;
05. import android.os.Bundle;
06. import android.support.wearable.view.WatchViewStub;
07. import android.support.wearable.view.WearableListView;
08. import android.view.LayoutInflater;
09. import android.view.ViewGroup;
10. import android.widget.TextView;
11.  
12. import java.util.ArrayList;
13.  
14. public class SimpleListActivity extends Activity implements WearableListView.ClickListener{
15.  
16. private WearableListView mListView;
17.  
18. @Override
19. protected void onCreate(Bundle savedInstanceState) {
20. super.onCreate(savedInstanceState);
21. setContentView(R.layout.activity_my);
22. final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
23. stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
24. @Override
25. public void onLayoutInflated(WatchViewStub stub) {
26. mListView = (WearableListView) stub.findViewById(R.id.listView1);
27. mListView.setAdapter(new MyAdapter(SimpleListActivity.this));
28. mListView.setClickListener(SimpleListActivity.this);
29. }
30. });
31. }
32.  
33. private static ArrayList<String> listItems;
34. static {
35. listItems = new ArrayList<String>();
36. listItems.add("Monday");
37. listItems.add("Tuesday");
38. listItems.add("Wednesday");
39. listItems.add("Thursday");
40. listItems.add("Friday");
41. listItems.add("Saturday");
42. }
43.  
44. @Override
45. public void onClick(WearableListView.ViewHolder viewHolder) {
46.  
47. }
48.  
49. @Override
50. public void onTopEmptyRegionClick() {
51.  
52. }
53.  
54. private class MyAdapter extends WearableListView.Adapter {
55. private final LayoutInflater mInflater;
56.  
57. private MyAdapter(Context context) {
58. mInflater = LayoutInflater.from(context);
59. }
60.  
61. @Override
62. public WearableListView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
63. return new WearableListView.ViewHolder(
64. mInflater.inflate(R.layout.row_simple_item_layout, null));
65. }
66.  
67. @Override
68. public void onBindViewHolder(WearableListView.ViewHolder holder, int position) {
69. TextView view = (TextView) holder.itemView.findViewById(R.id.textView);
70. view.setText(listItems.get(position).toString());
71. holder.itemView.setTag(position);
72. }
73.  
74. @Override
75. public int getItemCount() {
76. return listItems.size();
77. }
78. }
79. }


可以为该列表加入图标,更加漂亮

 

\

 

view source print ?
01. private final class MyItemView extends FrameLayout implements WearableListView.Item {
02.  
03. final CircledImageView imgView;
04. final TextView txtView;
05. private float mScale;
06. private final int mFadedCircleColor;
07. private final int mChosenCircleColor;
08.  
09. public MyItemView(Context context) {
10. super(context);
11. View.inflate(context, R.layout.row_advanced_item_layout, this);
12. imgView = (CircledImageView) findViewById(R.id.image);
13. txtView = (TextView) findViewById(R.id.text);
14. mFadedCircleColor = getResources().getColor(android.R.color.darker_gray);
15. mChosenCircleColor = getResources().getColor(android.R.color.holo_blue_dark);
16. }
17.  
18. @Override
19. public float getProximityMinValue() {
20. return mDefaultCircleRadius;
21. }
22.  
23. @Override
24. public float getProximityMaxValue() {
25. return mSelectedCircleRadius;
26. }
27.  
28. @Override
29. public float getCurrentProximityValue() {
30. return mScale;
31. }
32.  
33. @Override
34. public void setScalingAnimatorValue(float value) {
35. mScale = value;
36. imgView.setCircleRadius(mScale);
37. imgView.setCircleRadiusPressed(mScale);
38. }
39.  
40. @Override
41. public void onScaleUpStart() {
42. imgView.setAlpha(1f);
43. txtView.setAlpha(1f);
44. imgView.setCircleColor(mChosenCircleColor);
45. }
46.  
47. @Override
48. public void onScaleDownStart() {
49. imgView.setAlpha(0.5f);
50. txtView.setAlpha(0.5f);
51. imgView.setCircleColor(mFadedCircleColor);
52. }
53. }

这篇关于android wearable 研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/539942

相关文章

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

Android 实现一个隐私弹窗功能

《Android实现一个隐私弹窗功能》:本文主要介绍Android实现一个隐私弹窗功能,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 效果图如下:1. 设置同意、退出、点击用户协议、点击隐私协议的函数参数2. 《用户协议》、《隐私政策》设置成可点击的,且颜色要区分出来res/l

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl