Java 为什么我的AdapterAdapter在应用程序小部件中使用时会闪烁?
我正在创建一个简单的主屏幕小部件,用于显示图像的简单幻灯片。为了在图像之间切换,我使用了一个Java 为什么我的AdapterAdapter在应用程序小部件中使用时会闪烁?,java,android,android-appwidget,android-adapterview,Java,Android,Android Appwidget,Android Adapterview,我正在创建一个简单的主屏幕小部件,用于显示图像的简单幻灯片。为了在图像之间切换,我使用了一个AdapterViewFlipper,它只需每隔1.5秒显示下一个图像。这很好,但在从一个图像过渡到下一个图像的过程中,它似乎会淡出和淡入(几乎像过渡动画),我想禁用它。我怎样才能做到?我已经在布局XML中禁用了动画,但没有任何帮助。我很困惑 以下是我的布局,其中包含flipper: <?xml version="1.0" encoding="utf-8"?> <LinearLayout
AdapterViewFlipper
,它只需每隔1.5秒显示下一个图像。这很好,但在从一个图像过渡到下一个图像的过程中,它似乎会淡出和淡入(几乎像过渡动画),我想禁用它。我怎样才能做到?我已经在布局XML中禁用了动画,但没有任何帮助。我很困惑
以下是我的布局,其中包含flipper:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/widget_frame"
android:orientation="vertical"
android:textAlignment="gravity" >
<AdapterViewFlipper
android:id="@+id/image_flipper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/widget_icon"
android:animateLayoutChanges="false"
android:autoStart="true"
android:flipInterval="1500" >
</AdapterViewFlipper>
</LinearLayout>
…这是我的实际适配器,为它供电
public class SlideFactory implements RemoteViewsFactory {
private JSONArray jsoImages;
private final Context ctxContext;
private RemoteViews remView;
public SlideFactory(Context ctxContext, Intent ittIntent) {
remView = new RemoteViews(ctxContext.getPackageName(), R.layout.image);
this.ctxContext = ctxContext;
try {
jsoImages = new JSONArray(ittIntent.getStringExtra("data"));
} catch (JSONException e) {
throw new RuntimeException(e);
}
}
@Override
public RemoteViews getViewAt(int intPosition) {
try {
remView.setImageViewUri(R.id.dopper_image, Uri.parse(jsoImages.getString(intPosition)));
} catch (final JSONException e) {
Log.e("SlideFactory", "Unknown error encountered", e);
BugSenseHandler.sendException(e);
} catch (final Exception e) {
Log.e("SlideFactory", "Unknown error encountered", e);
BugSenseHandler.sendException(e);
}
return remView;
}
...
...
...
}
正如您所看到的,适配器中没有什么特别之处。我只是从磁盘读取图像并将其设置为具有
ImageView
的布局,然后将其提供给AdapterViewFlipper
,我也遇到了同样的问题,偶然发现了解决方案。这更像是一个棘手的解决方案。这实际上是通过添加没有动画设置的动画来禁用动画效果
1.在anim
文件夹下添加两个XML。我会说in.xml
和out.xml
,但您可以使用任何一种xml,也可以使用一种xml来实现这两种
2.在XMLs中添加一个空白的objectAnimator
元素
<?xml version="1.0" encoding="UTF-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"/>
android:inaimation=“@anim/in”
和android:outAnimation=“@anim/out”
到AdapterViewFlipper
我也遇到了同样的问题,偶然发现了解决办法。这更像是一个棘手的解决方案。这实际上是通过添加没有动画设置的动画来禁用动画效果 1.在
anim
文件夹下添加两个XML。我会说in.xml
和out.xml
,但您可以使用任何一种xml,也可以使用一种xml来实现这两种
2.在XMLs中添加一个空白的objectAnimator
元素
<?xml version="1.0" encoding="UTF-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"/>
android:inaimation=“@anim/in”
和android:outAnimation=“@anim/out”
到AdapterViewFlipper
非常感谢。你很快就会得到赏金的。这是我遇到的最棘手的事情之一。很好的解决方案。。。我唯一需要做的改变是将XML放入
animator
文件夹,而不是anim
文件夹谢谢。你很快就会得到赏金的。这是我遇到的最棘手的事情之一。很好的解决方案。。。我唯一需要做的更改是将XML放入animator
文件夹,而不是anim
文件夹