2011-04-04 133 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

相关问题