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

相关文章

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Android如何获取当前CPU频率和占用率

《Android如何获取当前CPU频率和占用率》最近在优化App的性能,需要获取当前CPU视频频率和占用率,所以本文小编就来和大家总结一下如何在Android中获取当前CPU频率和占用率吧... 最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下:目前没有标准的