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开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影