如何以编程方式在窗口小部件上设置图像大小?我使用此代码更改图像,但如何设置大小?
RemoteViews updateViews = new RemoteViews(EditPreferences.this.getPackageName(), R.layout.widgetmain2);
updateViews.setImageViewBitmap(R.id.ImageView00, ((BitmapDrawable)EditPreferences.this.getResources().getDrawable(R.drawable.normal_black_op100)).getBitmap());
ComponentName thisWidget = new ComponentName(EditPreferences.this, HelloWidget.class);
AppWidgetManager manager = AppWidgetManager.getInstance(EditPreferences.this);
manager.updateAppWidget(thisWidget, updateViews);
提前致谢
答案 0 :(得分:6)
事实上,这是一个非常广泛的问题。它有多个答案:
通常在layout.xml中设置适当的布局参数(width,height)和scaleType:http://developer.android.com/reference/android/widget/ImageView.html#attr_android:scaleType。这可以处理很多情况 - 每当设置图像时,它的缩放将根据它的参数重新计算。
但有时您需要以编程方式执行此操作。但它更复杂,因为它需要考虑屏幕的密度和位图的密度,屏幕尺寸独立的像素大小等等。这里有两点:
示例:
LinearLayout.LayoutParams layoutParams = new
LinearLayout.LayoutParams(width_physical_pixels, height_physical_pixels);
imageView.setLayoutParams(layoutParams);
重要!这里的LinearLayout只是一个例子。它应该是ImageView的PARENT类 - 因此布局参数始终是对象容器的类型而不是它们所设置的对象。