在窗口小部件上以编程方式设置ImageView宽度和高度

Pan*_*oid 11 android android-widget

我正在使用下面的代码使用remoteview在小部件imageview上设置图像现在我想将高度和宽度设置为imageview运行时.

if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(WidgetActivity1_1.this);
    RemoteViews remoteViews = new RemoteViews(WidgetActivity1_1.this.getPackageName(), R.layout.widget_layout1_1);
    Intent configIntent = new Intent(WidgetActivity1_1.this,UpdateWidgetService.class);
    configIntent.putExtra("Appid", appWidgetId);
    PendingIntent configPendingIntent = PendingIntent.getService(WidgetActivity1_1.this, appWidgetId, configIntent, 0);
    remoteViews.setImageViewResource(R.id.imgviewGrow, R.drawable.flower1);
}
Run Code Online (Sandbox Code Playgroud)

Emi*_*Adz 14

您可以通过以下方式设置布局参数:

myImageView.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
Run Code Online (Sandbox Code Playgroud)

或者设置一个数字.

图像大小操作有时可能很棘手,建议首先获取图像布局参数,更改它并将其设置回来:

android.view.ViewGroup.LayoutParams layoutParams = myImageView.getLayoutParams();
layoutParams.width = 30;
layoutParams.height = 30;
myImageView.setLayoutParams(layoutParams);
Run Code Online (Sandbox Code Playgroud)

如果你还有问题需要改变它的大小,试着将它放在LinearLayout中并使用布局参数操作imageView大小:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(30, 30);
myImageView.setLayoutParams(layoutParams);
Run Code Online (Sandbox Code Playgroud)

更新:以下帖子可以帮助您满足您的需求:

RemoteViews setLayoutParams?

http://pastebin.com/As3L8xWu

  • 您在小部件中设置图像视图布局时无法设置它,您必须使用 remotivew 并且 remotview 没有 setLayoutPrarms 方法。 (2认同)