【问题标题】:Android appwidget-provider: dynamic widthAndroid appwidget-provider:动态宽度
【发布时间】:2015-05-03 19:22:47
【问题描述】:

我正在创建一个简单的 android 小部件,它将显示小图像。

我需要能够根据所选图像的数量设置小部件的宽度。

我的小部件:

    <?xml version="1.0" encoding="utf-8"?>
     <appwidget-provider
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:initialLayout="@layout/widget_layout"
        android:minHeight="72dp"
        android:minWidth="72dp"
        android:updatePeriodMillis="0" >
    </appwidget-provider>

还有 Java 类:

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


      SharedPreferences preferences =   PreferenceManager.getDefaultSharedPreferences(context);
      if(!url.equalsIgnoreCase(""))
      {
          url = preferences.getString("url", "");
      }

       // Get all ids
       ComponentName thisWidget = new      ComponentName(context,MyWidgetProvider.class);

    int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);

    for (int widgetId : allWidgetIds) {

      RemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.widget_layout);


      // Register an onClickListener
      Intent intent = new Intent(context, MyWidgetProvider.class);

      intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
      intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);

      PendingIntent pendingIntent = PendingIntent.getBroadcast(context,0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
      remoteViews.setOnClickPendingIntent(R.id.open, pendingIntent);
      appWidgetManager.updateAppWidget(widgetId, remoteViews);
    }


     }

如何以编程方式更改minWidthminHeight

【问题讨论】:

    标签: java android android-widget


    【解决方案1】:

    我猜不可能以编程方式更改 minWidth 和 minHeight;但您可以尝试使用resizeMode 来扩展小部件布局。我希望这个解决方案对您有所帮助。

    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
        android:minWidth="320dp"
        android:minHeight="320dp"
        android:minResizeHeight="160dp"
        android:minResizeWidth="240dp"
        android:updatePeriodMillis="100"
        android:initialLayout="@layout/widget"
        android:autoAdvanceViewId="@+id/list_view"
        android:previewImage="@drawable/preview_image"
        android:resizeMode="vertical|horizontal"
        />
    

    【讨论】:

      猜你喜欢
      • 2016-10-07
      • 2012-08-21
      • 2013-08-16
      • 2017-03-14
      • 1970-01-01
      • 1970-01-01
      • 2012-09-22
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多