Как я могу установить размер изображения в виджет программно? Я использую этот код для изменения изображения, но как я могу установить размер?
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);
заранее спасибо
На самом деле это очень широкий вопрос. Для этого есть несколько ответов:
Обычно вы делаете это в layout.xml, устанавливая соответствующие параметры макета (ширина, высота) и 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 здесь просто пример. Это должен быть класс PARENT ImageView - поэтому параметры макета всегда относятся к типу контейнера объектов, а не к объекту, на котором они установлены.