0

如何在小部件中使用图像切换器?

我的代码编译得很好,但是当我尝试创建我的小部件时,它给出了一个错误:

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

我的图像切换器的 xml 代码是:

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

我创建视图工厂的代码是:

    @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;
        }
    });
}

任何帮助将不胜感激。

谢谢你

4

1 回答 1

1

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

您最好的选择可能是使用 FrameLayout 或 RelativeLayout,其中多个 ImageView 相互堆叠,然后逐个设置它们的可见性,直到只有当前所需的图像可见。

于 2011-02-27T15:29:03.287 回答