Android中Appwidget桌面小控件的简单入手方式
2016-01-05 18:32
453 查看
AppWidget
使用步骤
步骤1.创建一个java文件 如下: public class MyWidgetProvider extends AppWidgetProvider { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub super.onReceive(context, intent); } // 监听桌面小控件更新 @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // TODO Auto-generated method stub super.onUpdate(context, appWidgetManager, appWidgetIds); } // 监听桌面小控件第一个被添加 @Override public void onEnabled(Context context) { super.onEnabled(context); } // 监听桌面小控件最后一个被移除 @Override public void onDisabled(Context context) { // TODO Auto-generated method stub super.onDisabled(context); } // 监听桌面小控件被移除 @Override public void onDeleted(Context context, int[] appWidgetIds) { // TODO Auto-generated method stub super.onDeleted(context, appWidgetIds); } } 步骤2. 在layout文件夹中 创建一个布局文件(要显示的布局文件) 步骤3. 在res文件夹中 新建xml文件夹 生成如下xml文件 <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="288px"//最小宽度 android:minHeight="144px"//最小高度 android:initialLayout="@layout/mywidget"//加载的布局 android:updatePeriodMillis="1800000"//更新时间 其中桌面被分为了一个个的小方格 , 一般是 宽度为4个 高度5-6个, 一个方格的边为72 更新时间最小值为30分钟 也就是1800000毫秒,如果设置过低 默认30分钟 步骤4.在清单文件中注册一个桌面小控件: <receiver android:name="cn.xdl.appwidget.MyWidgetProvider" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/自定义的xml文件名" /> </receiver>
动态更改桌面小控件的值
//获取一个远程布局 remote = new RemoteViews(getApplicationContext().getPackageName(), R.layout.mywidget); Intent intent = new Intent(getApplicationContext(), DialogActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0); //设置布局中 指定ID控件的响应事件 remote.setOnClickPendingIntent(R.id.widget_tv1, pendingIntent ); provider = new ComponentName(getApplicationContext(), MyWidgetProvider.class); //获取Appwidget管理类 并使用它对桌面小控件完成更新 manager = AppWidgetManager.getInstance(getApplicationContext()); timer.schedule(new TimerTask() { @Override public void run() { updateViews(); } }, 0, 1000); } private void updateViews() { //更改某一个TextView控件展示的文字 remote.setTextViewText(R.id.widget_tv1, dateFormat.format(new Date())); //更改某一个TextView控件展示的文字 remote.setTextViewText(R.id.widget_tv2, dateFormat2.format(new Date())); //更新到桌面控件上 manager.updateAppWidget(provider, remote); }
相关文章推荐
- iOS导航栏返回按钮
- iOS 用 AVPlayer 播放一个本地音频文件
- Objective-C与Java类的一些区别
- Objective-C与Java类的一些区别
- Unity_Shader开发_认识(一)
- Unity Mecanim 总结
- Android 系统应用调用,intent 的使用方法总结
- Android WebView总结
- Android高效显示图片详解(三)
- Android高效显示图片详解(二)
- Android studio jni编写步骤,流程
- Android中webview快速上手方式
- Unity NGUI 3.7.8 控件使用
- Unity3D游戏开发之“Wide窗口”布局设置
- Android高效显示图片详解(一)
- android 设置头像并保存到本地
- Android 9-patch 九图的制作与使用
- appium测试ios应用遇到的问题
- ios import和@class的区别
- Android TextView前加图标垂直居中第一行(仿大众点评购买须知/提示语)