您的位置:首页 > 移动开发

王学岗app widget窗口小部件(一)

2016-09-25 16:30 405 查看
今天我们讲窗口小部件,就是我们的app wiget;其实在app帮助文档里讲的很清楚,我们今天就按照文档里的步骤给大家贴贴代码!

http://www.android-doc.com/guide/topics/appwidgets/index.html

第一步:

在文件清单里添加如下代码

<receiver android:name="ExampleAppWidgetProvider" >
<!-- 系统的行为 -->
<intent-filter>
<!-- action要去的地方 -->
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<!-- meta-data表示 去的路上要携带的数据-->
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/example_appwidget_info" />
</receiver>


我们按照文件清单的原因把该添加的添加下就可以了;

第二部:建立一个新的类继承ExampleAppWidgetProvider;代码我先什么也不写,只建立该类

package com.example.app_widget;

import android.appwidget.AppWidgetProvider;

public class ExampleAppWidgetProvider extends AppWidgetProvider {

}


接着文件清单android:resource=”@xml/example_appwidget_info”写

第三步:创建example_appwidget_info,创建文件的目录(注意是在xml文件下,需要自己手动创建xml文件)如下图所示


照抄帮助文档就行了,我做了下注释给各个属性

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure="com.example.app_widget.MainActivity"
android:initialLayout="@layout/example_appwidget"
android:minHeight="72dp"
android:minWidth="294dp"
android:previewImage="@drawable/preview"
android:resizeMode="horizontal|vertical"
>
<!--
//app widget最小宽度和高度
android:minWidth="294dp"
android:minHeight="72dp"
//有些更新数据的app widget,比如时钟该属性表示跟新数据的时间,
//但是不能更新到秒,更新精度到分钟
android:updatePeriodMillis="86400000"
//预览图片
android:previewImage="@drawable/preview"
//添加一个app widget时候的布局
android:initialLayout="@layout/example_appwidget"
//当我们添加一个 app widget的时候他会自动启动的activity的名字
android:configure="com.example.android.ExampleAppWidgetConfigure"
//改变大小的模式,是可以水平拉伸还是可以垂直方向拉伸或者水平垂直方向都可以拉伸,none表示不可以拉伸
android:resizeMode="horizontal|vertical"

-->
</appwidget-provider>


我在这里给大家贴出来我previewImage属性用的图片



第四步:根据第三步中的 android:initialLayout=”@layout/example_appwidget”

在layout资源下创建example_appwidget文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!--
app widget的initialLayout属性xml支持的布局:FrameLayout,LinearLayout,RelativeLayout;
app widget的initialLayout属性xml支持的控件:AnalogClock,Button,Choronmeter,ImageButton,
ProgressBar,TextView,ViewFilpper,ListView,
GridView,StackView,AdapterViewFilpper

-->
<TextView
android:id="@+id/tv_time_widget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="要显示时间的app widget" />

</LinearLayout>


然后运行就可以了!从下图可以看到,运行的效果没有任何特殊之处,


但我们打开窗口小部件的时候可以发现,窗口小部件里面已经加入了我们的应用程序!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android widget