歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android App Widget設計

Android App Widget設計

日期:2017/3/1 10:21:10   编辑:Linux編程

App Widget也是一種UI組件,它可以讓一小塊程序(program piece)嵌入到桌面上。與普通的Widget(TextView、WebView等)相比,有以下幾個不同:

  1. App Widget是有生命的UI組件,它會自動更新自身內容;
  2. Widget不能自動更新自身內容,只能被動的等待用戶的調用;

應用上,由於App Widget自動更新的特性,所以它比較適合用來設計一些天氣,新聞,日歷等功能。

App Widget的設計流程:

  1. 規劃App Widget的大小及更新時間,在/res/xml目錄新增一份XML文件;
  2. 規劃App Widget的UI,修改res/layout/main.xml;
  3. 編寫App Widget的主程序;
  4. 編輯AndroidManifest.xml,設定App Widget可接受App Widget的更新事件:android.appwidget.action.APPWIDGET_UPDATE

及設計一個App Widget至少需要以下4個文件:

  • res/xml/appwidget_provider.xml
  • res/layout/main.xml
  • src//HelloAppWidgetProvider.java
  • AndroidManifest.xml

下面是一個具體實現App Widget的例子:

新建一個Android工程HelloAppWidget,在/res目錄新建一個文件夾xml,在/res/xml目錄下新建一個appwidget_provider.xml文件:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:minWidth="85dp"
  4. android:minHeight="30dp"
  5. android:updatePeriodMillis="1000"
  6. android:initialLayout="@layout/main"
  7. >
  8. </appwidget-provider>
說明如下:

  1. <appwidget-provider>標簽定義App Widget的屬性
  2. android:minWidth 寬度
  3. android:minHeight 長度
  4. android:updatePeriodMillis定義App Widget的更新頻率,Android框架每隔一段時間,會callback AppWidgetProvider類的onUpdate()事件;以前android的版本設定為1毫秒為單位,現在版本為了省電,更新時間為30~60分鐘,所以現在設定30分鐘以內的更新意義不大,系統默認為30~60分鐘更新
  5. android:initialLayout屬性指定此App Widget的UI layout定義,”@”符號在Android的XML定義檔案,代表「目錄」之意,因此”@layout/main”表示「layout目錄下的main.xml檔案」
為了界面美觀,google提供了App Widget的外觀設計原則,以下是官方提供的設計參考:

Copyright © Linux教程網 All Rights Reserved