我正在創建一個簡單的主屏幕小部件,用於顯示圖像的簡單幻燈片。爲了在圖像間切換,我使用的是一個AdapterViewFlipper
,它每1.5秒顯示一幅圖像。這工作正常,但在從一個圖像過渡到下一個過程中,它似乎淡出和淡入(幾乎像過渡動畫),我想禁用它。我該怎麼做?我已經禁用佈局XML中的動畫,但它沒有幫助。我很困惑。爲什麼我的AdapterViewAdapter在AppWidget中使用時會閃爍?
下面是一個包含腳蹼我的佈局:
<?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>
當appwidget,負載,我綁定腳蹼到它的適配器:
Intent ittSlides = new Intent(ctxContext, SlideService.class);
ittSlides.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, intInstance);
ittSlides.setData(Uri.fromParts("content", String.valueOf(new Random().nextInt()), null));
ittSlides.putExtra("data", strContent);
RemoteViews remView = new RemoteViews(ctxContext.getPackageName(), R.layout.widget);
remView.setRemoteAdapter(R.id.image_flipper, ittSlides);
AppWidgetManager.getInstance(ctxContext).updateAppWidget(intInstance, remView);
..和這裏是我的實際適配器的權力這一點。
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
謝謝。你很快就會得到這個賞金。這是我遇到的最棘手的事情之一。 –
明白了。謝謝! – juniano