android高手之路之Android Widget

改写,原文地址:http://blog.csdn.net/android_tutor/article/details/5544471

Widget就是Android中的一个挂件。曾几何时,这个被认为是革命性的东西,现在慢慢没落。其原因有很多。流量、耗电、内存。。。

下面还是说下widget的使用吧:

首先看效果图:

1.首先在res文件夹下新建一个xml文件夹。注意是文件夹。然后在这个文件夹下新建一个xml文件:widget_provider.xml。resouce-type选择appwidget-provider,如图:

xml文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="50dp"
    android:minHeight="50dp"
    android:updatePeriodMillis="10000"
    android:initialLayout="@layout/main"

/>

2.修改layout文件夹的main.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/git"
    >
<TextView
	android:id="@+id/wordcup"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="hello"
 	android:textSize="12px"
    android:textColor="#ff0000"
    />
</LinearLayout>

3.修改WidetDemo.java

package com.wf.mywidgetdemo;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Timer;
import java.util.TimerTask;

import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.widget.RemoteViews;

public class WidetDemo extends AppWidgetProvider{
	/** Called when the activity is first created. */
	 @Override
	    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
	            int[] appWidgetIds) {  

	        Timer timer = new Timer();
	        timer.scheduleAtFixedRate(new MyTime(context,appWidgetManager), 1, 60000);
	        super.onUpdate(context, appWidgetManager, appWidgetIds);
	    } 

	 private class MyTime extends TimerTask{
		 RemoteViews remoteViews;
		 AppWidgetManager appWidgetManager;
		 ComponentName thisWidget; 

		 public MyTime(Context context,AppWidgetManager appWidgetManager){
	            this.appWidgetManager = appWidgetManager;
	            remoteViews = new RemoteViews(context.getPackageName(),R.layout.main);
	            thisWidget = new ComponentName(context,WidetDemo.class);
	     }

		@Override
		public void run() {
			Date date = new Date();
			Calendar calendar = new GregorianCalendar(2018,06,8);
			long days = (((calendar.getTimeInMillis()-date.getTime())/1000))/86400;
			remoteViews.setTextViewText(R.id.wordcup, "距离俄罗斯世界杯还有" + days+"天");
			appWidgetManager.updateAppWidget(thisWidget, remoteViews);
		} 

	 }
}

4.修改AndroidManifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.wf.mywidgetdemo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <receiver android:name=".WidetDemo"
                  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/widget_provider"
            />
        </receiver>
    </application>

</manifest>

搞定。

时间: 2024-10-19 08:44:34

android高手之路之Android Widget的相关文章

Android高手之路之Android中Intent传递对象的两种方法Serializable,Parcelable

注:本文改编自Android_Tutor的文章,原文地址:http://blog.csdn.net/android_tutor/article/details/5740845 Android中的传递有两个方法,一个是Serializable,另一个是Parcelable. Serializable是J2SE本身就支持的.而Parcelable是Android所特有的. 二者的使用场景和区别: 1)在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelab

Android高手之路之Android中的自定义属性attr.xml、TypedArray的使用

一般我们都是使用android:xxx=""...这样的android的属性.但有时我们需要使用自定义的属性,尤其是自定义view的时候尤其需要. 一般需要以下几个步骤: 1.在res/values 文件下定义一个attrs.xml 文件: <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="MyView&q

Android高手之路之popUpWindow的显示与关闭

popWIndow的效果就类似一个固定的小窗口.直接看效果吧 效果: 主要代码: package com.example.popupwindowdemo; import android.os.Bundle; import android.app.Activity; import android.app.ActionBar.LayoutParams; import android.util.Log; import android.view.Gravity; import android.view.

Android高手之路之获取正在运行的service,以及判断某个service是否正在运行

注:本文改自http://blog.csdn.net/android_tutor/article/details/5824581 其实主要是用了activityManager的getRunningServices来获取正在运行的service的列表.然后用正在运行的服务的名称去比对相等. 看代码: package com.example.runningservice; import java.util.List; import android.app.Activity; import andro

android高手之路之使用runable需要注意的问题

看一段代码: package com.example.threaddemo; import android.os.Bundle; import android.os.Handler; import android.app.Activity; import android.util.Log; import android.view.Menu; public class ThreadDemo extends Activity { private static final String TAG = "

Android AOP之路三 Android上的注解

一.简介 啥是注解,不懂的可以先看我上一篇文章. 在android 里面 注解主要用来干这么几件事: 和编译器一起给你一些提示警告信息. 配合一些ide 可以更加方便快捷 安全有效的编写java代码.谷歌出的support-annotations这个库 就是主要干这个的. 和反射一起 提供一些类似于spring 可配置的功能,方便简洁. 二.Support Annotations栗子 这里使用官方的一个库,说明在开发中的简单一个应用. 2.1 导包 在新建项目的时候会自动导的,可以看build.

Android 面试题总结之Android 进阶(一)

Android 面试题总结之Android 进阶(一) 在前几篇文章中都是讲的基础,大家应该会觉得非常熟悉,但往往我们可能对于基础某些细节认识不够彻底或贯穿不全,我一直认为基础都是比较难的,那么本章节终于到进阶啦,主要讲的是View 的相关知识,在前面<Android 面试题总结之Android 基础 (六)>中已经对View有了一定的了解,由于内容较多且也是面试必考题,所以将分两篇继续深入的理解View. 在阅读过程中有任何问题,请及时联系.如需转载请注明 fuchenxuan de Blo

Android 面试题总结之Android 基础(六)

Android 面试题总结之Android 基础(六) 在上一章节Android 面试题总结之Android 基础ListView(五) 主要是ListView的优化,原理以及一些基本问题. 在阅读过程中有任何问题,请及时联系.如需转载请注明 fuchenxuan de Blog 本章系<Android 之美 从0到1 – 高手之路>Android基础将会总结了Android 布局常见面试问题.其实对于基础方面Android 开发来说,经常面试无非就是UI,网络,数据库,这三大方面,本章节总结

Android 面试题总结之Android 基础(四)

Android 面试题总结之Android 基础Service(四) 在上一章节Android 面试题总结之Android 基础Broadcast Receiver(三) 我们讲了Broadcast Receiver基础知识.本节主要讲解Service相关基础知识,Service也是我们开发过程中经常使用到. 在阅读过程中有任何问题,请及时联系.如需转载请注明 fuchenxuan de Blog 本章系<Android 之美 从0到1 – 高手之路>Android基础Service 总结了A