成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解Android Widget實(shí)例開發(fā)應(yīng)用

移動開發(fā)
Android Widget實(shí)例開發(fā)應(yīng)用是本文要介紹的內(nèi)容,主要是來了解并學(xué)習(xí)Android Widget實(shí)例應(yīng)用的開發(fā),具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。

Android Widget實(shí)例開發(fā)應(yīng)用是本文要介紹的內(nèi)容,主要是來了解并學(xué)習(xí)Android Widget實(shí)例應(yīng)用的開發(fā),具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。

Widget并不支持所有的Android組件,只能在Widget中使用如下組件類:

(1)用于布局的組件類。

FrameLayout   LinearLayout   RelativeLayout

(2)可視組件類

  1. AnalogClock  ImageView   ProgressBar   TextView   Button  Chronometer  ImageButton 

創(chuàng)建Widget描述文件,該文件是Xml格式,必須放在res\xml目錄中 

  1.  <?xml version="1.0" encoding="utf-8"?>    
  2.  <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"   
  3.     android:minWidth="309dip"   
  4.      android:minHeight="192dip"   
  5.      android:initialLayout="@layout/main"    初始化布局    
  6.      android:updatePeriodMillis="1000"       更新的時(shí)間間隔(毫秒)    
  7.  />   
  8.  
  9. 建立Widget類,該類必須從AppWidgetProvider類繼承(AppWidgetProvider是BroadcastReceiver的子類,因此,Widget類可以接受廣播消息)    
  10.  
  11. 在AndroidManifest.xml文件中定義widget    
  12.    
  13.  <receiver android:label="@string/app_name" android:name=".HelloWidget">    
  14.              <intent-filter>    
  15.                  <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>    
  16.             </intent-filter>    
  17.            <meta-data android:name="android.appwidget.provider"   
  18.                  android:resource="@xml/hello_widget_provider"/>    
  19. </receiver>   
  20.  
  21. 顯示時(shí)間,每秒更新    
  22.  
  23.  public class HelloWidget extends AppWidgetProvider {    
  24.      private Timer timer;    
  25.      private int[] appWidgetIds;    
  26.      private AppWidgetManager appWidgetManager;    
  27.      private Context context;    
  28.  
  29.      @Override   
  30.      public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {    
  31.          super.onUpdate(context, appWidgetManager, appWidgetIds);    
  32.          Log.i("Widget", "onUpdate");    
  33.          this.context = context;    
  34.          this.appWidgetManager = appWidgetManager;    
  35.          this.appWidgetIds = appWidgetIds;    
  36.          timer = new Timer();    
  37.          timer.schedule(task, 0,1000);    
  38.  }    
  39.      private Handler handler = new Handler(){    
  40.          @Override   
  41.          public void handleMessage(Message msg) {    
  42.              super.handleMessage(msg);    
  43.              switch (msg.what) {    
  44.              case 1:    
  45.                  Time myTime = new Time();    
  46.                  myTime.setToNow();    
  47.                  RemoteViews updateViews =     
  48.                      new RemoteViews(context.getPackageName(),    
  49.                        R.layout.main);    
  50.                  updateViews.setTextViewText(R.id.widget_textview, "北京時(shí)間"+myTime.format("%H:%M:%S"));    
  51.                  Log.i("Widget", "北京時(shí)間"+myTime.format("%H:%M:%S"));    
  52.  //              ComponentName thisWidget = new ComponentName(context,HelloWidget.class);    
  53.  //              appWidgetManager.updateAppWidget(thisWidget, updateViews);    
  54.                  appWidgetManager.updateAppWidget(appWidgetIds, updateViews);    
  55.                  break;    
  56.              default:    
  57.                  break;    
  58.              }    
  59.          }    
  60.      };    
  61.      private TimerTask task = new TimerTask() {    
  62.          public void run() {    
  63.              handler.sendEmptyMessage(1);    
  64.          }    
  65.      };    
  66.  }  

音樂播放widget

  1. package cn.stay.widget;    
  2. import android.app.PendingIntent;    
  3. import android.appwidget.AppWidgetManager;    
  4. import android.appwidget.AppWidgetProvider;    
  5. import android.content.Context;    
  6. import android.content.Intent;    
  7. import android.os.Handler;    
  8.  
  9. import android.os.Message;    
  10. import android.widget.RemoteViews;    
  11. import cn.aoran.activity.R;       
  12. public class HelloWidget extends AppWidgetProvider {    
  13.     private static final String WIDGET_BACK = "cn.stay.widget.back";    
  14.     private static final String WIDGET_PLAY = "cn.stay.widget.play";    
  15.     private static final String WIDGET_NEXT = "cn.stay.widget.next";    
  16.     private static final String WIDGET_SONG = "cn.stay.widget.song";    
  17.     private static final String WIDGET_CURRENT = "cn.stay.widget.current";    
  18.     private String song = "";    
  19.     private static Context context;    
  20.     private static AppWidgetManager appWidgetManager;    
  21.     private static int[] appWidgetIds;    
  22.  
  23.     @Override   
  24.     public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {    
  25.         super.onUpdate(context, appWidgetManager, appWidgetIds);    
  26.         HelloWidget.context = context;    
  27.         HelloWidget.appWidgetIds = appWidgetIds;    
  28.         HelloWidget.appWidgetManager = appWidgetManager;    
  29.         handler.sendEmptyMessage(0);    
  30.     }    
  31.     
  32.     @Override   
  33.     public void onReceive(Context context, Intent intent) {    
  34.         super.onReceive(context, intent);    
  35.         if (WIDGET_SONG.equals(intent.getAction())) {    
  36.             song = intent.getStringExtra("song");    
  37.             if (song == null || "".equals(song.trim())) {    
  38.                 song = "未知";    
  39.             }    
  40.             if (context != null) {    
  41.                 handler.sendEmptyMessage(1);    
  42.             }    
  43.         }    
  44.     }    
  45.     private Handler handler = new Handler() {    
  46.         public void handleMessage(Message msg) {    
  47.             RemoteViews widgetViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);    
  48.             super.handleMessage(msg);    
  49.             switch (msg.what) {    
  50.             case 0:    
  51.                 context.sendBroadcast(new Intent(WIDGET_CURRENT));    
  52.                 // Intent intent = new Intent(context,LocalActivity.class);    
  53.                 // PendingIntent pIntent = PendingIntent.getActivity(context, 0, intent, 0);    
  54.                 // widgetViews.setOnClickPendingIntent(R.id.widget_sub, pIntent);    
  55.                 // 上一首    
  56.                 PendingIntent backIntent = PendingIntent.getBroadcast(context, 0, new Intent(WIDGET_BACK), 0);    
  57.                 widgetViews.setOnClickPendingIntent(R.id.widget_back_btn, backIntent);    
  58.                 // 下一首    
  59.                 PendingIntent nextIntent = PendingIntent.getBroadcast(context, 0, new Intent(WIDGET_NEXT), 0);    
  60.                 widgetViews.setOnClickPendingIntent(R.id.widget_next_btn, nextIntent);    
  61.                 // 播放    
  62.                 PendingIntent playIntent = PendingIntent.getBroadcast(context, 0, new Intent(WIDGET_PLAY), 0);    
  63.                 widgetViews.setOnClickPendingIntent(R.id.widget_play_btn, playIntent);    
  64.                 appWidgetManager.updateAppWidget(appWidgetIds, widgetViews);    
  65.                 break;    
  66.             case 1:    
  67.                 widgetViews.setTextViewText(R.id.widget_song, song);    
  68. //              ComponentName thisWidget = new ComponentName(context, HelloWidget.class);    
  69. //              AppWidgetManager manager = AppWidgetManager.getInstance(context);    
  70.                 appWidgetManager.updateAppWidget(appWidgetIds, widgetViews);    
  71.                 break;    
  72.             default:    
  73.                 break;    
  74.             }    
  75.         }    
  76.     
  77.     };    
  78. }  

 
小結(jié):詳解Android Widget實(shí)例開發(fā)應(yīng)用的內(nèi)容介紹完了,希望通過Android Widget實(shí)例內(nèi)容的學(xué)習(xí)能對你有所幫助!

責(zé)任編輯:zhaolei 來源: 博客園
相關(guān)推薦

2011-09-09 20:14:58

Android Wid

2010-07-13 09:02:19

Widget開發(fā)

2011-09-07 17:54:40

Android Wid開發(fā)

2011-02-28 13:04:27

RelativeLayAndroid Wid

2011-09-07 14:01:41

Android Wid實(shí)例

2011-09-07 16:28:46

QT WidgetQWidget

2011-09-07 13:18:40

Android Wid

2011-09-08 17:48:33

Web Widget

2011-09-07 13:42:36

Android Wid實(shí)例

2011-09-08 13:41:53

Widget

2011-04-12 08:40:23

IMFAndroid

2011-09-07 10:34:48

Android Wid

2011-09-09 10:00:20

Android Wid開發(fā)

2010-07-23 08:54:02

2009-04-02 15:58:12

AndroidEclipseSqlite

2010-07-26 14:25:06

Widget開發(fā)

2010-07-26 14:44:47

Widget開發(fā)

2011-09-08 15:40:45

Android Wid組件

2011-09-08 14:01:01

Android Wid實(shí)例

2011-09-07 11:15:25

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品久久久爽爽爽麻豆色哟哟 | 亚洲一区二区免费视频 | 国产精品黄视频 | 日韩国产精品一区二区三区 | 天天干天天干 | 69视频在线播放 | 成人av在线大片 | 国产免费一区二区三区 | 91久久久久久久久 | 污免费网站 | 久久噜噜噜精品国产亚洲综合 | 特黄小视频 | 午夜网 | 国产免费黄网 | 日韩欧美在线不卡 | 久久99精品国产 | 久久99精品久久久 | 在线视频日韩 | 亚洲免费婷婷 | 999热视频 | 精精精精xxxx免费视频 | 欧洲在线视频 | 午夜精品三区 | 一区二区电影 | 欧美性久久 | 日韩av在线一区二区 | 亚洲午夜精品视频 | 日韩at| 久久高清国产 | av一区二区三区四区 | 99久久婷婷国产综合精品电影 | 中文一区 | 国产日韩在线观看一区 | 精品欧美激情在线观看 | 日韩欧美国产不卡 | 日本一道本视频 | 懂色一区二区三区免费观看 | 日韩精品二区 | 久久免费观看视频 | 中文av电影 | 黄色大片观看 |