2011-04-04 142 views
4

當使用開發Widgets for Android時,似乎無法將自己的自定義View類添加到AppWidgetProvider。如何製作自定義小部件?

例如我創建了一個擴展視圖的自定義類,它在Activity中使用時很好,但是當我將它添加到Widget時,我得到一個「ClassNotFoundException」,因爲Android似乎只允許一組特定的系統小部件被添加。

我看過一些應用程序,看起來像他們已經有自己的自定義小部件。例如,當點擊顯示應用程序快捷方式時,會顯示一個徑向菜單。這些如何實施?是否有解決使用我自己的自定義小部件?他們似乎有一個他們可以在小部件中繪製的畫布。

好的快速示例https://market.android.com/details?id=zombiesinthelab.widgets.droidpetwidget&feature=top-paid 所以這個小部件是通過只繪製ImageViews並定期更新它們而不是使用畫布繪製框架來完成的?

+0

你是什麼意思_add它的Widget_? – 2011-04-04 09:35:46

+0

我的意思是在我的小部件xml佈局中,由於RemoteViews不支持它,我無法使用com.myClass.MyWidget而沒有獲取ClassNotFound。 – DeliveryNinja 2011-04-04 09:57:09

回答

7

的Android窗口小部件只能包含佈局的小部件的支持RemoteViews。見this list

甲RemoteViews對象(以及, 因此,一個App的widget)可以 支持以下佈局類:

FrameLayout 
LinearLayout 
RelativeLayout 

和以下widget類:

AnalogClock 
Button 
Chronometer 
ImageButton 
ImageView 
ProgressBar 
TextView 

>這些類的後代不支持 。

注意最後一句話。你不能改變這種行爲,它在android中被硬編碼。

+0

是的,我學會了艱辛的道路,並創造了一個。 – DeliveryNinja 2011-04-04 10:06:01