zoukankan      html  css  js  c++  java
  • Android Widget搭建过程

    Android平台下Widget的搭建过程为:

    1.在res/layout下创建Widget的布局文件:digitalclock.xml

    代码
    <?xml version="1.0" encoding="UTF-8"?>
    <TextView  
        
    xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width
    ="wrap_content" 
        android:layout_height
    ="wrap_content" 
        android:id
    ="@+id/time"
        android:textSize
    ="45px"
        android:scrollX
    ="30px"
        android:scrollY
    ="30px"
        android:textStyle
    ="bold"
        android:textColor
    ="#ff000000"
        android:background
    ="@drawable/bg"
        
    />

    2.在res/xml下创建Widget的描述文件:est_appwidget.xml

    代码
    <?xml version="1.0" encoding="UTF-8"?>
    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
        android:minWidth
    ="186dip"
        android:minHeight
    ="212dip"
        android:updatePeriodMillis
    ="1000"
        android:initialLayout
    ="@layout/digitalclock"/>

    3. 从AppWidgetProvider继承一个类(ESTTime),重写其虚方法

    代码
    package com.android.test.esttime;

    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 {
        
        
    /** Called when the activity is first created. */
        @Override
        
    public void onUpdate(Context context,
                AppWidgetManager appWidgetManager,
    int[] appWidgetIds )
        {
            context.startService(
    new Intent(context,UpdateService.class));        
        }
        
      
    //Service类
        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) {
                
    // TODO Auto-generated method stub
                return null;
            }

        }
        

    }

    4.在AndroidManifest.xml中注册本Widget 

    代码
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package
    ="com.android.test.esttime"
          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> 

    最后,编译运行。这样在Home上长按弹出的Widget列表中就有新创建的Weiget了 。

  • 相关阅读:
    如何测试一个网页登陆界面
    吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
    postman接口案例
    接口定义
    socket网络编程
    分页读取文件内容
    hashlib,configparser,logging,模块
    python面向对象编程
    常用模块
    迭代器和生成器
  • 原文地址:https://www.cnblogs.com/tt_mc/p/1717085.html
Copyright © 2011-2022 走看看