android 部件,Android 桌面部件

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

863c89ada341acf2e7abb7b09dacd4d9.png

352f266da50f46d2fd6cb0981915a7a9.png

res/layout/digitalclock.xml

Xml代码 a270fd22cc3eec0d65340621dc2fa52f.gif 23677e00e68f5773660cc6abc1885cdf.png

2bbfaabf8b173ea29ed04effc0973820.gif

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" />

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

Xml代码 a270fd22cc3eec0d65340621dc2fa52f.gif 23677e00e68f5773660cc6abc1885cdf.png

2bbfaabf8b173ea29ed04effc0973820.gif

android:minWidth="146dip"

android:minHeight="72dip"

android:updatePeriodMillis="1000"

android:initialLayout="@layout/digitalclock" />

android:minWidth="146dip"

android:minHeight="72dip"

android:updatePeriodMillis="1000"

android:initialLayout="@layout/digitalclock" />

AndroidManifest.xml

Xml代码 a270fd22cc3eec0d65340621dc2fa52f.gif 23677e00e68f5773660cc6abc1885cdf.png

2bbfaabf8b173ea29ed04effc0973820.gif

package="com.studio.android.chp10.ex4"

android:versionCode="1"

android:versionName="1.0">

android:label="@string/app_name">

android:label="@string/app_name">

android:name=

"android.appwidget.action.APPWIDGET_UPDATE" />

android:resource="@xml/est_appwidget" />

package="com.studio.android.chp10.ex4"

android:versionCode="1"

android:versionName="1.0">

android:label="@string/app_name">

android:label="@string/app_name">

android:name=

"android.appwidget.action.APPWIDGET_UPDATE" />

android:resource="@xml/est_appwidget" />

Java代码 a270fd22cc3eec0d65340621dc2fa52f.gif 23677e00e68f5773660cc6abc1885cdf.png

2bbfaabf8b173ea29ed04effc0973820.gif

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;

}

}

}

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;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值