Android小部件被截断

时间:2011-08-31 23:27:25

标签: android android-widget

我正面临设计小部件的新手问题 我的小部件应该有4个ImageViews和一个TextView作为标题 当我放入3个ImageView时,这是正确的结果:Widget with 3 images

添加第四张图片后,我的窗口小部件被截断:Widget with 4 images

正如您所看到的那样,最后一幅图像(就像64x64一样)会缩小 为什么呢?
我只是红色this link,但即使我尝试将固定宽度设置为320dip,我的小部件也不正确。

这是小部件布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:orientation="vertical">
    <TextView android:layout_width="fill_parent"
        android:layout_height="20dip" android:text="@string/app_name"
        android:gravity="center_vertical|center_horizontal"
        android:background="#4E7FAB" android:textColor="#FFA10E"
        android:textStyle="bold" />
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/status_layout" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:orientation="horizontal"
        android:background="@android:color/darker_gray">

        <ImageView android:id="@+id/widget_usage" android:src="@drawable/usage_none"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:clickable="true" />
        <ImageView android:src="@drawable/div" android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <ImageView android:id="@+id/widget_behaviour" android:src="@drawable/beh_drop"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:clickable="true" />
        <ImageView android:src="@drawable/div" android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TextView android:id="@+id/widget_calls" android:background="@drawable/missed_calls_zero"
            android:layout_width="64dip" android:layout_height="64dip"
            android:textColor="@android:color/black" android:gravity="center_vertical|center_horizontal"
            android:textStyle="bold" android:text="0" />
        <ImageView android:src="@drawable/div" android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <ImageView android:id="@+id/widget_contacts" android:src="@drawable/contacts"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:clickable="true" />
    </LinearLayout>
</LinearLayout>

3 个答案:

答案 0 :(得分:1)

根据你的要求将我的评论/建议转回答案。

尝试为3个ImageView元素设置android:layout_width =“64dip”,看看是否能修复它。

我不是100%确定为什么修复它但我怀疑它与模拟器的屏幕尺寸和图像的实际尺寸(实际像素)相比dip

有关详细信息,请参阅开发指南... Supporting Multiple Screens,特别是描述不同尺寸和密度如何工作的部分...... Range of screens supported

很高兴能提供帮助。

答案 1 :(得分:0)

使用

android:layout_width="64dip"

android:layout_width="0dip" android:layout_weight="1"

在每个ImageView上

答案 2 :(得分:0)

我无法回答你的AppWidgetProviderInfo,所以我会在这里发布:

在这里你找到所有 https://developer.android.com/reference/android/appwidget/AppWidgetProviderInfo.html