1. 程式人生 > >Android天氣預報設計

Android天氣預報設計

image 適配 com 功能 數據 receiver wid ima style

——嵌入式軟件開發

名字

功能模塊

代碼行數

備註

謝燦輝

Widget

200

桌面小程序

李楊敏

GPS定位,百度地圖API

100-150

獲取當前所在城市

丁小芳

城市選擇Activity,天氣API獲取天氣

100-200

包括數據庫交互

本軟件是一個天氣類應用軟件,帶有widget,啟動軟件後可以定位所在城市或手動設置後實現天氣查詢,PM2.5查詢,7天氣溫曲線,我們可從圖片和文字中顯現最近一周天氣預報和相關溫馨提示等。

技術分享技術分享技術分享

這些數據的提供都通過後臺服務獲取,而後臺服務會在一定時間間隔通過API獲取並存儲在數據庫當中。

從以上可看出這個軟件的主要功能有:

①啟動APP Widget應用程序;

②設置界面,設置所要顯示天氣預報的城市;

③詳細界面,通過圖片文字顯示當前一周的天氣預報、溫馨提示及氣溫曲線變化;

④顯示界面,通過圖片文字顯示時間、溫度等;

④分享界面

系統設計

  1. 模塊

    1.天氣預報的顯示

    為了用戶的體驗更加便捷,我們將軟件作為一個小插件定在了手機主面上,調用的數據使用在桌面上顯示。而在用戶界面上使用了(AppWidget)框架結構,提供直觀的交互操作。

    天氣Widget開發步驟:

    ①設計Widget的布局

    Res/layout/widget.xml res/drawable/widget_background.xml

    創建Wiget的第一個步驟就是設計並實現Wiget的組件布局,就是Widget和用戶交互的界面。Widget與Activity的布局設計和實現方法十分相似,都是在/res/layout目錄中建立XML的布局資源文件

    技術分享

    ②定義Widget的元數據

    Widget元數據文件保存在/res/xml/weather_widget_4x2.xml

    技術分享

    ③實現Widget的添加、刪除、更新

    實現Widget的添加、刪除、更新等過程,主要是通過AppWidgetProvider類來實現,這個類本身繼承BroadcastReceiver,用來接收與Widget相關的更新、刪除、生效等消息。當AppWidgetProvider接收到這些消息以後,會分別調用相應的事件處理函數。

    事件

    調用函數

    說明

    ACTION_APPWIDGET_UPDATE

    OnUpdate()

    Widget更新

    ACTION_APPWIDGET_DELETED

    OnDelete()

    Widget刪除

    ACTION_APPWIDGET_ENABLED

    onEnabled()

    Widget生效

    ACTION_APPWIDGET_DISABLED

    onDisabled()

    Widget失效

    技術分享

    ④在AndroidManifest.xml文件中聲明Widget

    /AndroidManifest.xml

    要讓Widget生效還需在AndroidManifest.xml文件中進行聲明,主要在該文件中聲明AppWidgetProvider

    技術分享

  2. 數據交互

    1.利用API獲取天氣數據,數據獲取地址:http://sixweather.3gpk.net/SixWeather.aspx?city=%E5%B9%BF%E5%B7%9E

    獲取天氣的關鍵代碼:

    Com.yz.util/GetWeatherTask.java技術分享

    向天氣接口發送HTTP GET 請求

    技術分享

    服務器返回XML文檔,包含天氣內容

    技術分享

  3. 自定定位城市

    代碼:請求定位權限技術分享

    百度地圖API

    技術分享

    技術分享

  4. 用戶交互

    設置城市(數據庫讀取過程)

    Com.yz.app

    技術分享

    Com.yz.db

    技術分享

    技術分享

  5. 系統管理

    1. 頁面實現布局管理

    根據需求分析可知,該應用程序應包含四個主要的用戶界面。顯示界面中,應包含城市、溫度和時間等信息;詳細界面中,又包含了三個界面,分別為天氣中心、溫馨提示和氣溫曲線,這其中包含了當前以及後六天的天氣預報,氣溫走勢等信息;設置界面,主要是為了用戶手動查詢所需城市天氣預報;分享界面提供了將天氣預報信息分享出去的功能。

    圖片:

    /res/layout/activit_weather_center.xml

    技術分享

    分享途徑 /assets/platforms.xml

    技術分享

    2. 後臺服務(喚醒設備時候更新)技術分享

    技術分享

  6. 數據庫設計與實現(手工指定地點情況)

    City.db->獲取城市->天氣API獲取天氣->處理->顯示

    六、程序模塊設計

    從這功能需求我們將整個程序分為了四個功能模塊:

    ①程序啟動

    ②用戶界面

    ③後臺服務

    ④數據庫適配器

    技術分享

    技術分享

    技術分享

    技術分享

Android天氣預報設計