Добавление ImageView дает сбой виджет Android-приложения - PullRequest
0 голосов
/ 10 мая 2018

Я делаю очень простой виджет, который показывает изображение, используя ImageView.

Мой макет выглядит так

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dip">

    <!-- ImageView logo -->
    <ImageView
        android:id="@+id/logo"
        android:src="@drawable/giants"
        android:contentDescription="@string/app_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:scaleType="fitXY" />

</RelativeLayout>

Мой класс провайдеров виджетов выглядит так

 public class LogoWidgetProvider extends AppWidgetProvider {

    @Override
    public void onUpdate(Context context, AppWidgetManager 
    appWidgetManager, int[] appWidgetIds) {

        // What Happens While App Goes Through Each Widget Id//
        for (int currentWidgetId: appWidgetIds) {

            // Define And Instantiate Variable RemoteViews widgetLogo//
            RemoteViews widgetLogo = new RemoteViews(context.getPackageName(), R.layout.widget_logo);

            // Update Widget//
            appWidgetManager.updateAppWidget(currentWidgetId, widgetLogo);
        }
    }
}

Приемник в моем манифесте выглядит так

    <!-- Widget Provider Logo -->
    <receiver android:name=".LogoWidgetProvider">

        <!-- Tell The App That There Is A Widget To Display -->
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <!-- Tell The App Where To Find Widget Data -->
        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/appwidget_info_logo">
        </meta-data>

    </receiver>

Наконец, XML-код поставщика виджетов выглядит следующим образом

<!-- Basic Information For Widget Logo -->
<appwidget-provider
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:initialLayout="@layout/widget_logo"
    android:minHeight="110dip"
    android:minWidth="110dip"
    android:minResizeWidth="40dip"
    android:resizeMode="vertical|horizontal"
    android:updatePeriodMillis="3600000"
    android:widgetCategory="home_screen">

</appwidget-provider>

По какой-то причине виджет вылетает каждый раз. Если бы я должен был переключить ImageView To Button, он работает нормально. Чего мне не хватает, чтобы виджет отображал изображение?

Спасибо

1 Ответ

0 голосов
/ 18 мая 2018

Я понял это. Вы можете использовать любое изображение независимо от разрешения, но его нужно поместить в коробку размером 400 на 400 пикселей. Я использовал малярный коврик, чтобы сделать это. Как только это находится в коробке, изображение показывает

...