前言
在Android手机中,我们经常会看到各种桌面小部件,天气、音乐播放器、时间表盘等,这些都是桌面小部件的实例。本篇主要介绍桌面小部件开发的一些最基础的知识。
Widget介绍
Widget并没有运行在我们App的进程中,而是运行在系统的SystemServer进程中。所以意味着我们也不能像在App中那样操作View控件。为了我们能在远程进程中更新界面,Google专门为我们提供了一个RemoteViews类。RemoteViews仅仅表示的是一个View结构。它可以在远程进程中展示和更新界面。
我们先列出要实现Widget的几个核心步骤:
一.widget页面布局
这个是小部件的布局文件,和活动布局一样
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="WIDGET"
android:textSize="25sp"
android:textColor="#fff"
android:background="#09c"
/>
</RelativeLayout>
注意事项是:Widget并不支持所有的控件跟布局,而仅仅只是支持Android布局和控件的一个子集
1、支持布局:FrameLayout,LinearLayout,RelativeLayout,GridLayout
2、支持控件:AnalogClock,Button,Chronometer,ImageButton,ImageView,ProgressBar,TextView,ViewFlipper,ListView,GridView,StackView,AdapterViewFlipper
二.定义小部件配置信息
配置信息主要是设定小部件的一些属性,比如宽高、缩放模式、更新时间间隔等。我们需要在res/xml目录下新建xml文件,文件名字可以任意取。文件内容如下(可做参考):
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minHeight="40dp"
android:minWidth="40dp"