android - 如何最大化 Android 小部件尺寸(宽度)?

标签 android android-layout widget android-widget android-appwidget

我尝试创建一个应该占据屏幕整个宽度的小部件。但它最初总是对应于 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: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 - 如何最大化 Android 小部件尺寸(宽度)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31943267/

相关文章:

java - 使用 ToggleButton 在单击按钮时将数据发送到另一个 Activity

javascript - 节点中带有网格的 Ext JS 树 - 组合小部件

java - 要求输出始终采用小数点右侧 2 位、左侧 7 位格式

android - 在 Android 上部署 Qt 应用程序真的很慢吗?

android - 带有图像的有吸引力的 ListView

javascript - ASP.Net 应用程序中的可嵌入小部件

java - Android 小部件按钮单击添加

android - 使用 android studio 将我的项目连接到 gitlab

android - Firebase 云消息传递如何在 Android 应用程序中初始化

java - 如何将此Kotlin代码中的 “apply”转换为Java?