android远程更改图片大小,android - 调整大小时在AppWidget中保持ImageButton的宽高比 - 堆栈内存溢出...
我的主屏幕小部件中有一个ImageButton。当用户调整窗口小部件的大小但保持完美圆形时,它应该变大或变小。以下代码似乎可以在模拟器上工作,但在某些手机上,圆圈仍然是椭圆形的(可能比宽度高10%)。我使用填充是因为我还没有找到一种在代码中设置远程视图大小的方法。谢谢。AppWidgetProvider:@Overridepublic void onAppWidgetOptionsCh...
我的主屏幕小部件中有一个ImageButton。 当用户调整窗口小部件的大小但保持完美圆形时,它应该变大或变小。
以下代码似乎可以在模拟器上工作,但在某些手机上,圆圈仍然是椭圆形的(可能比宽度高10%)。 我使用填充是因为我还没有找到一种在代码中设置远程视图大小的方法。 谢谢。
AppWidgetProvider:
@Override
public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) {
...
onUpdate(context, appWidgetManager, new int[]{appWidgetId});
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
Bundle options = appWidgetManager.getAppWidgetOptions(myIds[id]);
int minWidth = options.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH);
int minHeight = options.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT);
int width = Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, minWidth, context.getResources().getDisplayMetrics()));
int height = Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, minHeight, context.getResources().getDisplayMetrics()));
views.setViewPadding(R.id.image_button,0, (height-width)/2,0,(height-width)/2);
...
widget.xml:
android:id="@+id/llWidget"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/image_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/widget_button"
android:visibility="visible"
android:background="@drawable/widget_button"
android:elevation="2dp"/>
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text=""
android:elevation="2dp"
android:textAllCaps="true"/>
widget_button.xml:
android:color="?android:colorControlHighlight">
更多推荐
所有评论(0)