如何最大化 android 小部件大小(宽度)?
How to maximize android widget size (width)?
我尝试创建一个应占据整个屏幕宽度的小部件。但它总是最初对应于 android:minWidth.
当然,我可以将 android:minWidth 设置为 250 dp,但我想让小部件保持可调整大小。
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="170dp"
android:minHeight="40dp"
android:updatePeriodMillis="86400000"
android:previewImage="@drawable/widget_preview"
android:initialLayout="@layout/widget_4"
android:configure="test.WidgetConfigureActivity"
android:resizeMode="horizontal"
android:widgetCategory="home_screen"
android:initialKeyguardLayout="@layout/widget_4">
</appwidget-provider>
布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/widget_padding"
android:clickable="true"
android:focusable="true"
android:background="@color/translucent_black">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:baselineAligned="false">
<RelativeLayout
android:orientation="horizontal"
android:layout_marginLeft="10dp"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<ImageButton
android:id="@+id/imageCircleButton"
android:layout_gravity="center_vertical"
android:layout_width="52dp"
android:layout_height="52dp"
android:scaleType="fitXY"
android:src="@drawable/widget_circle_w"
android:background="@android:color/transparent"
android:layout_centerVertical="true"
android:contentDescription="@string/strLevelIndicator"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/appwidget_text_level"
android:textStyle="bold"
android:textSize="30sp"
android:layout_gravity="center_vertical"
android:textColor="#ffffff"
android:text="@string/strWidgetDefLevel"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:gravity="clip_vertical"
android:layout_weight="0.8"
android:layout_gravity="left|center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/appwidget_text_map"
android:textColor="#c9c9c9"
android:layout_gravity="center_vertical"
android:text="@string/strWidgetDefText" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/appwidget_text_trend"
android:textColor="#ffffff"
android:layout_gravity="center_vertical" />
</LinearLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:background="@color/translucent_black_dark">
<ImageButton
android:id="@+id/imageXButton"
android:contentDescription="@string/strX"
android:layout_gravity="right|center_vertical"
android:clickable="true"
android:scaleType="fitXY"
android:src="@drawable/appwidget_x"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_width="@dimen/image_button_width"
android:layout_height="@dimen/image_button_height"
android:layout_centerVertical="true"
android:background="#00000000" />
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
我没有看到属性 android:width 和 android:height,除了设置 minWidth 或 height 这些属性是必须的,并将宽度设置为扭曲内容(我可能知道)这将解决您的问题调整大小的目的
尝试使用 android:minResizeWidth:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minResizeWidth="170dp"
android:minWidth="250dp"
android:minHeight="40dp"
android:updatePeriodMillis="86400000"
android:previewImage="@drawable/widget_preview"
android:initialLayout="@layout/widget_4"
android:configure="test.WidgetConfigureActivity"
android:resizeMode="horizontal"
android:widgetCategory="home_screen"
android:initialKeyguardLayout="@layout/widget_4">
</appwidget-provider>
minResizeWidth 正是您想要实现的目标,设置 minWidth 但让用户将其调整为更小的尺寸。
更多信息:https://developer.android.com/guide/topics/appwidgets/index.html
我尝试创建一个应占据整个屏幕宽度的小部件。但它总是最初对应于 android:minWidth.
当然,我可以将 android:minWidth 设置为 250 dp,但我想让小部件保持可调整大小。
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="170dp"
android:minHeight="40dp"
android:updatePeriodMillis="86400000"
android:previewImage="@drawable/widget_preview"
android:initialLayout="@layout/widget_4"
android:configure="test.WidgetConfigureActivity"
android:resizeMode="horizontal"
android:widgetCategory="home_screen"
android:initialKeyguardLayout="@layout/widget_4">
</appwidget-provider>
布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/widget_padding"
android:clickable="true"
android:focusable="true"
android:background="@color/translucent_black">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:baselineAligned="false">
<RelativeLayout
android:orientation="horizontal"
android:layout_marginLeft="10dp"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<ImageButton
android:id="@+id/imageCircleButton"
android:layout_gravity="center_vertical"
android:layout_width="52dp"
android:layout_height="52dp"
android:scaleType="fitXY"
android:src="@drawable/widget_circle_w"
android:background="@android:color/transparent"
android:layout_centerVertical="true"
android:contentDescription="@string/strLevelIndicator"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/appwidget_text_level"
android:textStyle="bold"
android:textSize="30sp"
android:layout_gravity="center_vertical"
android:textColor="#ffffff"
android:text="@string/strWidgetDefLevel"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:gravity="clip_vertical"
android:layout_weight="0.8"
android:layout_gravity="left|center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/appwidget_text_map"
android:textColor="#c9c9c9"
android:layout_gravity="center_vertical"
android:text="@string/strWidgetDefText" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/appwidget_text_trend"
android:textColor="#ffffff"
android:layout_gravity="center_vertical" />
</LinearLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:background="@color/translucent_black_dark">
<ImageButton
android:id="@+id/imageXButton"
android:contentDescription="@string/strX"
android:layout_gravity="right|center_vertical"
android:clickable="true"
android:scaleType="fitXY"
android:src="@drawable/appwidget_x"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_width="@dimen/image_button_width"
android:layout_height="@dimen/image_button_height"
android:layout_centerVertical="true"
android:background="#00000000" />
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
我没有看到属性 android:width 和 android:height,除了设置 minWidth 或 height 这些属性是必须的,并将宽度设置为扭曲内容(我可能知道)这将解决您的问题调整大小的目的
尝试使用 android:minResizeWidth:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minResizeWidth="170dp"
android:minWidth="250dp"
android:minHeight="40dp"
android:updatePeriodMillis="86400000"
android:previewImage="@drawable/widget_preview"
android:initialLayout="@layout/widget_4"
android:configure="test.WidgetConfigureActivity"
android:resizeMode="horizontal"
android:widgetCategory="home_screen"
android:initialKeyguardLayout="@layout/widget_4">
</appwidget-provider>
minResizeWidth 正是您想要实现的目标,设置 minWidth 但让用户将其调整为更小的尺寸。
更多信息:https://developer.android.com/guide/topics/appwidgets/index.html