如何使AppWidget适应用户网格大小1x1

时间:2019-05-31 09:45:20

标签: android android-layout android-appwidget

我的应用程序小部件显示图像,并且我想在图像上显示一些文本,因此我使用Framelayout和边距对所有内容进行布局。当我在不同设备上检查小部件时,我注意到每个设备为1x1小部件,2x1小部件等提供的空间略有不同。因此1x1小部件将被裁剪,或者将不适用于所有设备上的所有1x1尺寸。 由于使用remoteview的可能性非常有限,因此我无法自动调整文本大小或使用其他技巧将所有内容“缩放”到最大可能区域,但仍然保留宽高比。

我已经在这个主题上进行了搜索,但是没有找到关于如何在设备上以1x1的空间最适合您的小部件的设计指南。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainLayout"
    android:layout_width="81dp"
    android:layout_height="90dp"
    android:layout_gravity="center"
    android:padding="@dimen/widget_margin">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/ic_size_1_1"
        android:scaleType="fitCenter"/>
    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end"
        android:text="text"
        android:textColor="#DFDF30"
        android:textSize="8sp"
        android:textStyle="bold"
        android:layout_marginTop="3dp"
        android:layout_marginRight="10dp"
        android:layout_marginEnd="10dp"
        android:maxLines="1"
        />
</FrameLayout>

如果查看配置文件,则1x1小部件的最小宽度为40x40dp。任何较大的尺寸都将创建2x1小部件。但是这个数字对于布局文件来说太小了。典型的1x1尺寸约为80x90dp。这很令人困惑。

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="40dp"
    android:minHeight="40dp"
    android:previewImage="@drawable/example_appwidget_preview"
    android:resizeMode="horizontal|vertical"
    android:updatePeriodMillis="0"
    android:widgetCategory="home_screen|keyguard"></appwidget-provider>

0 个答案:

没有答案