桌面部件是一种利用AppWidget框架将应用程序的某个部件放在桌面。

res/layout/digitalclock.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <TextView xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@+id/time"
  4. android:textSize="45px"
  5. android:textStyle="bold"
  6. android:textColor="#FFFFFFFF"
  7. android:background="@drawable/bg"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content" />
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/time"
android:textSize="45px"
android:textStyle="bold"
android:textColor="#FFFFFFFF"
android:background="@drawable/bg"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

res/xml/est_appwidget.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:minWidth="146dip"
  4. android:minHeight="72dip"
  5. android:updatePeriodMillis="1000"
  6. android:initialLayout="@layout/digitalclock" />
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="146dip"
android:minHeight="72dip"
android:updatePeriodMillis="1000"
android:initialLayout="@layout/digitalclock" />

AndroidManifest.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.studio.android.chp10.ex4"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <application android:icon="@drawable/icon"
  7. android:label="@string/app_name">
  8. <receiver android:name="ESTTime"
  9. android:label="@string/app_name">
  10. <intent-filter>
  11. <action
  12. android:name=
  13. "android.appwidget.action.APPWIDGET_UPDATE" />
  14. </intent-filter>
  15. <meta-data android:name="android.appwidget.provider"
  16. android:resource="@xml/est_appwidget" />
  17. </receiver>
  18. <service android:name=".ESTTime$UpdateService" />
  19. </application>
  20. <uses-sdk android:minSdkVersion="3" />
  21. </manifest>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.studio.android.chp10.ex4"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon"
android:label="@string/app_name">
<receiver android:name="ESTTime"
android:label="@string/app_name">
<intent-filter>
<action
android:name=
"android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/est_appwidget" />
</receiver>
<service android:name=".ESTTime$UpdateService" />
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>
  1. import android.app.Service;
  2. import android.appwidget.AppWidgetManager;
  3. import android.appwidget.AppWidgetProvider;
  4. import android.content.ComponentName;
  5. import android.content.Context;
  6. import android.content.Intent;
  7. import android.os.IBinder;
  8. import android.text.format.Time;
  9. import android.widget.RemoteViews;
  10. public class ESTTime extends AppWidgetProvider {
  11. @Override
  12. public void onUpdate(Context context,
  13. AppWidgetManager appWidgetManager,int[] appWidgetIds) {
  14. context.startService(new Intent(context,UpdateService.class));
  15. }
  16. public static class UpdateService extends Service {
  17. @Override
  18. public void onStart(Intent intent, int startId) {
  19. Time estTime = new Time("EST");
  20. estTime.setToNow();
  21. //传入所在包包名和布局文件
  22. RemoteViews updateViews = new RemoteViews(getPackageName(),R.layout.digitalclock);
  23. updateViews.setTextViewText(R.id.time,
  24. estTime.format("%H:%M"));
  25. ComponentName thisWidget =
  26. new ComponentName(this, ESTTime.class);
  27. AppWidgetManager manager =
  28. AppWidgetManager.getInstance(this);
  29. manager.updateAppWidget(thisWidget, updateViews);
  30. }
  31. @Override
  32. public IBinder onBind(Intent intent) {
  33. return null;
  34. }
  35. }
  36. }
import android.app.Service;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.text.format.Time;
import android.widget.RemoteViews; public class ESTTime extends AppWidgetProvider {
@Override
public void onUpdate(Context context,
AppWidgetManager appWidgetManager,int[] appWidgetIds) {
context.startService(new Intent(context,UpdateService.class));
} public static class UpdateService extends Service {
@Override
public void onStart(Intent intent, int startId) {
Time estTime = new Time("EST");
estTime.setToNow();
//传入所在包包名和布局文件
RemoteViews updateViews = new RemoteViews(getPackageName(),R.layout.digitalclock);
updateViews.setTextViewText(R.id.time,
estTime.format("%H:%M")); ComponentName thisWidget =
new ComponentName(this, ESTTime.class);
AppWidgetManager manager =
AppWidgetManager.getInstance(this);
manager.updateAppWidget(thisWidget, updateViews);
} @Override
public IBinder onBind(Intent intent) {
return null;
}
}
}

ESTTime.rar

Android 桌面部件的更多相关文章

  1. Android -- 桌面悬浮,QQ管家火箭实现

    续上一篇博客<Android -- 桌面悬浮,仿360>,传送门:http://www.cnblogs.com/yydcdut/p/3909888.html,在此代码上继续添加实现. 比起 ...

  2. Android桌面小插件——Widget

    Android桌面小插件--Widget 效果图 实现 1. 创建Widget类 创建一个Widget类,并实现页面创建的时候,就实现显示时间 package com.kongqw.kqwwidget ...

  3. Android 桌面小部件

    1. 添加AppWidgetProvider 实际上就是个带有界面的BroadcastReceiver public class SimpleWidgetProvider extends AppWid ...

  4. Android小部件Widget开发过程中的坑和总结

    @ 目录 概述 官方参考 效果图 AndroidManifest.xml Receiver Service Options res/xml/ widget_desktop_options.xml 常用 ...

  5. 优质Android小部件:索尼滚动相册

    虽然骚尼手机卖的不怎么样,但是有些东西还是做的挺好的,工业设计就不用说了,索尼的相册的双指任意缩放功能也是尤其炫酷.其桌面小部件滚动相册我觉得也挺好的,比谷歌原生的相册墙功能好多了,网上搜了一下也没发 ...

  6. android桌面快捷方式跳转到指定activity

    AndroidManifest.xml 应用主入口配置: <activity android:name="com.*.cust.contacts.MainActivity" ...

  7. Android -- 桌面悬浮,仿360

    实现原理                                                                               这种桌面悬浮窗的效果很类似与Wid ...

  8. Android桌面快捷方式那些事与那些坑

    原文来自http://blog.zanlabs.com/2015/03/14/android-shortcut-summary/ 将近二个多月没写博客了.之前一段时间一直在搞红包助手,就没抽时间写博客 ...

  9. android桌面小火箭升空动画

    public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceS ...

随机推荐

  1. (转)C#垃圾回收机制详解

    GC的前世与今生 虽然本文是以.net作为目标来讲述GC,但是GC的概念并非才诞生不久.早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是 ...

  2. SharePoint中Rating相关的字段。

      From: https://sharepoint.stackexchange.com/questions/194197/how-to-manipulate-likeby-nooflikes-rat ...

  3. mysqli

    CREATE TABLE `user` ( `id` ) NOT NULL, `name` ) NOT NULL, `password` ) NOT NULL ) ENGINE=InnoDB DEFA ...

  4. [Functional Programming] Introduction to State, thinking in State

    Recently, I am learning Working with ADT. Got some extra thought about State Monad. Basiclly how to ...

  5. Android LazyList 从网络获取图片并缓存

    原演示地址 本文内容 环境 演示 LazyList 从网络获取图片并缓存 参考资料 本文是 Github 上的一个演示,通过网络获取歌手专辑的缩略图,并显示在 ListView 控件中.该演示具备将缩 ...

  6. 带你走进EJB--将EJB发布为Webservice(4)

    接下来的我们将会自定义一个对象,然后看看EJB是如何对复杂的参数发布成WebService的. 代码如下:在第一个版本的基础之上加上增加用户的方法,参数为User. package com.tgb.e ...

  7. 在浏览器判断是否安装app,并打开相应的页面

    1.代码功能: 判断手机/平板是否安装app 如果安装 则调用app的scheme,传入url当作参数,来做后续操作 如果没有安装 则跳转到app store/google play 下载app 2. ...

  8. 017-通过govendor管理依赖包

    1:安装 go get -u github.com/kardianos/govendor 2:配置环境变量 需要把 $GOPATH/bin/ 加到 PATH 中 D:\my_workspace\go_ ...

  9. dom4j解析以及生成xml字符串测试

    public static void main(String[] args) { String xmlStr = "<ybjcVo>"+ "<zbGri ...

  10. http-server使用

    https://segmentfault.com/q/1010000003926981