2011-02-27 65 views
0

如何在widget中使用imageswitcher?Android小部件imageswitcher?

我的代码编译罚款,但是当我尝试创建我的小部件也给出了一个错误:

Error inflating AppWidget AppWidgetProviderInfo(provider=ComponentInfo{test.basic/test.basic.HelloWorldWidget}): android.view.InflateException: Binary XML file line #5: Error inflating class android.widget.ImageSwitcher

我为我的imageswitcher XML代码:

<ImageSwitcher android:id="@+id/image_switcher" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" /> 

和我创建的代码一个是的ViewFactory:

@Override 
public void onEnabled(final Context context) { 
    readImages(context); 

    ImageSwitcher imageSwitcher = getImageSwitcher(context); 
    imageSwitcher.setFactory(new ViewFactory() { 

     public View makeView() { 
      ImageView imageView = new ImageView(context); 
      imageView.setBackgroundColor(0xFF000000); 
      imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); 
      imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
      return imageView; 
     } 
    }); 
} 

任何帮助,将大幅升值。

谢谢

回答

1

我不认为这是可能在AppWidget使用的ImageSwitcher。 AppWidget文档(http://developer.android.com/guide/topics/appwidgets/index.html)列出了构建AppWidget时可能使用的七种控件类型。 ImageSwicher不在列表中。

您最好的办法是使用FrameLayout或RelativeLayout与多个ImageView堆叠在一起,然后逐个设置其可见性,直到只显示当前所需的图像。

+0

但随后问题变成如何使用图像之间的动画 – 2011-02-27 22:21:41

+0

是的,我试过一次在我的小部件中使用LayoutAnimations,结果不太好。他们在有趣的时候被触发,例如当用户在升​​级后第一次使用我的一个小部件导航到主屏幕时。如果你真的想要动画,我认为你必须使用AlarmManager(或其他类型的调度机制)来安排5次更新,间隔为100毫秒,然后操纵图像的Alpha来实现淡入/淡入例如,输出效果。 – 2011-02-28 13:51:04