❶ androidwidget有用嗎
1.身材微:它們一般都很小,在終端上嵌入非常方便,運行快速。
2.形式多:Widget可以以多種形式呈現出來,幻燈秀、視頻、地圖、新聞、小游戲……
3.功能巨:別看它們小,卻服務周到,它可以為你報告新聞、幫你買東西、列出你最喜歡的樂隊,還有你最近看的視頻。另外,它還是一個殷勤的管家,你不必親自去Flickr或者天氣預報網站,Widget會將信息主動帶給你。
4.姿容麗:它們可以稱得上玉面飛龍、以色服人。只要你願意,你可以把它變成任何你想要得樣子。它的出現,無異於一枚「桌面炸彈」,狹窄而單調的IE窗口將被更為廣闊和絢麗的桌面空間所取代。
5.個性化:Widget更像一個屬於我們每個人的魔方,任由用戶聚合。你可以根據自己喜好,將多個Widget,隨心所欲的去精心組裝你的網路世界。通過Widget,可以用戶把一切在「網」中的內容打亂重來,並按照用戶希望看到的樣子重新排列組合一個屬於自己的互聯網。比如說一個由微件搭建個人空間,可以包括來自新浪的體育新聞,來自論壇的一個板塊,來自權威財經網站的一則隨時更新的股票信息 ——這些以往需要用戶同時分別進入幾個網站才能看到的信息,現在由一個個微件將其轉變為用戶個人空間的一部分,從而可以直接在同一個頁面中並存。傳統互聯網訪問方式處於分裂狀態的後Web2.0時期,多樣性、炫酷且更具個性化的Widget流行,或許能引領一個新的潮流。
6.易製作:製作 Widget 部件並不復雜,只需要熟悉三方面的知識:圖像處理、HTML/XML、java,就可以按照開發站點里的教程做出漂亮的部件來。Widget能夠流行的一個要點在於開放製作,UGC應用帶來爆炸式地增長。
那麼,什麼是android widget呢?
在Android 1.5 SDK preview中,我們看到了一系列功能和API上的變化變化,包括軟鍵盤、桌面Widget和Live Folder API、視頻錄制API,藍牙功能升級等,Google近來對於這些全新功能的解析使得Android開發者blog變得異常活躍。上周,Jeff Sharkey就有一篇對於Android桌面widget和AppWidget框架的簡介,以「Word of the day」的一個例子講述了桌面Widget的運作機制。昨天他又在個人blog上放出了一個天氣預報Widget的例子,事實上這已經是一個真正實用的程序了。它每天更新4次天氣預報,我們可以添加多個Widget來關注多個城市的天氣情況,另外,點擊Widget後我們還可以看到今後幾天的詳細預報。
這讓我想起了HTC Source的Nick Gray上周的一篇文章Android Widgets, Unlimited Potential中提到的幾類可能會大受歡迎的Android桌面Widget。
Android本身已經自帶了時鍾、音樂播放器、相框和Google搜索4個Widget程序,不過這並不能阻止大家開發自己更加美觀,功能更豐富的版本。另外,微博客、RSS訂閱、股市信息、天氣預報這些Widget也都有流行的可能。
微博客Widget:Twidroid是Android上迄今為止最棒的Twitter客戶端,大家顯然都期待著它會推出支持桌面Widget的版本,另外像國內比較受歡迎的飯否、嘀咕、嘰歪等應該也會有類似的Widget推出。對於一個微博客類的Widget來說,有兩個方面是必不可少的,一是用來發布消息,另一個則是用來瀏覽。
RSS訂閱Widget: 盡管微博客(尤其是Twitter)已經完全蓋過來RSS訂閱的風頭,越來越多的人用Twitter來跟蹤站點的更新,不過RSS訂閱也並非完全沒有了市場,像分類訂閱這樣的功能還是需要RSS來幫忙,另外站點管理員也未必會在Twitter上發布所有的更新。
股市信息Widget:對於炒股的人來說,大概沒有什麼能比在手機桌面上放上幾個所關注股票的實時股價更有運籌帷幄的感覺了吧。
天氣預報Widget:對於我這樣成天窩在辦公室或者家裡的人來說,有一個Widget能夠讓我了解當前的天氣和近1、2天的天氣是非常有用的,這大概會大大減少我下了樓又跑回去拿雨傘的幾率。如果能加上像TouchFLO 3D中那樣的UI效果,當然就更酷了。
這只是我現在想到的一些Widget,得益於Android 1.5為我們提供的Widget API為我們的手機桌面帶來的無限的可能,我們的手機桌面無疑將會更有趣。
對國內G1的用戶,如果想體驗Android 1.5的桌面Widget,可以看看Haykuro的blog,他正在為製作G1可用的Android 1.5 ROM而努力。另外,T-Mobile已經計劃在五月向德國的T-Mobile G1用戶推送1.5的更新了,所以即使到時候沒有官方的G1簡體中文1.5 ROM,相信Haykuro的 1.5 ROM for G1也能非常接近官方的成熟度。
Widget應用目前在Android手機上得到了廣泛的應用。由於其方便小巧,所以得到了很多的應用,像天氣,微博,信息,歌曲,時間等等。
關於android Wpp widget:
應用程序窗口小部件(Widget)是微小的應用程序視圖,可以被嵌入到其它應用程序中(比如桌面)並接收周期性的更新。你可以通過一個App Widget provider來發布一個Widget。可以容納其它App Widget的應用程序組件被稱為App Widget宿主。下面的截屏顯示了一個音樂App Widget。
❷ 【Android】如何在自己的程序中添加appWidget
其實在android中提供了三個非常簡單的類,應用這三個類我們可以將一個appWidget「表面上」,注意是「表面上」添加到你的應用中。代碼如下: AppWidgetHost host = new AppWidgetHost(this, 1024);
int appWidgetId = host.allocateAppWidgetId();
AppWidgetManager mAppWidgetManager = AppWidgetManager.getInstance(this);
mAppwidgetProviderInfos = (ArrayList
) mAppWidgetManager.getInstalledProviders();
for (int i = 0; i < mAppwidgetProviderInfos.size(); i++){AppWidgetProviderInfo widgetInfo = mAppwidgetProviderInfos.get(i);
AbsoluteLayout.LayoutParams allp = new AbsoluteLayout.LayoutParams(100, 100, 0, 0);
abl.addView(hostView, allp);
稍微解釋下,新建個AppWidgetHost,分配個appWidgetId,用AppWidgetManager得到一個AppWidgetProviderInfo,再用host建立AppWidgetHostView,最後設置下在layout中的位置,把它添加到layout上。
這樣,一個表面上的就好了。不過問題也隨之而來,這是個又困擾了我幾天的問題,就是這個appWidget根本就是處於個disable的狀態,即不更新,也無法響應broadcast。經過對於launcher,framework和網上的一些理解和查閱,終於找到了問題所在,而且是個相對來說比較惡心的問題。launcher中是這么做的,就是通過起一個
Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
將appWidgetId 傳入這個
pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);再調用startActivityForResult(pickIntent, REQUEST_PICK_APPWIDGET);
來實現的,當然這個intent還要些必要的參數。這里就不說了,代碼里自己看。
在onActivityResult里進行得到appWidgetId,AppWidgetProviderInfo,並建立個AppWidgetHostView,添加到layout上。
❸ android中如何在appwidget上實現動畫效果
LayoutAnimation
或者你可以看看在360那些appwidget執行動畫的時候是無法操作頁面的而且這時候你按回退鍵他的widget是會消失之後再顯示出來,那麼是不是可以這樣:
點擊你的Widget跳轉到一個透明的Activity 在這個Activity中有一個widget一樣View的來執行動畫
動畫完成之後 finish掉這個activity
❹ Android桌面小部件AppWidget開發
在Android我們經常可以看到各種桌面小部件,比如時衫山鍾、天氣、音樂或帶中播放器等等。我們可以使用AppWidgetProvider來實現小部件的開發。
開發一個桌面小部件的步驟:
在res/layout/下新建一個布局文件,名稱和內容自定義,看你想把小工具做成什麼樣。需要注意的是系統默認的小工具布局中只支持以下這些標簽,如果用了列表以外的標簽,會導致小工具載入錯誤:
比如,我們創建了一個名為widget_layout.xml的布局文件:
定義小部件的配置信息需要在res目錄下新建一個xml目錄,然後在res/xml/目錄下創建一個配置文件,配置文件名稱隨意。新建app_widget_provider_info.xml:
上面的參數意義很明確,initialLayout指小行拿部件的初始化布局,一般與最終布局相同;minHeight和minWidth定義了小部件的最小寬高,與小部件所佔網格大小有關;previewImage可以指定在添加小部件時看到的預覽圖;updatePeriodMillis指定了小部件的自動更新周期,單位為毫秒。
其中minHeight和minWidth的定義可以參考官方文檔: https://developer.android.com/guide/practices/ui_guidelines/widget_design.html#design
OK,小部件完成了,運行一下看看效果: