Android小部件填充问题

时间:2012-08-09 05:47:25

标签: android widget margin padding android-4.0-ice-cream-sandwich

我试图从索尼爱立信手机克隆电源管理小部件,但我的小部件的新ICS填充有问题。

我已阅读此文[下面的链接],但我仍然遇到问题。

我在 GB 上运行我的小部件,它就像我想要的那样工作(第二个是克隆):
http://i.minus.com/iQmbhue0z0jJz.png

但是在 ICS 中运行时,我的小部件变得比原来的小:小 http://i.minus.com/iudmWwv6xBsxA.png

我的档案是:


widget_info.xml (@ xml / widget_info.xml)

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="40.0dip"
    android:minHeight="40.0dip"
    android:updatePeriodMillis="0"
    android:initialLayout="@layout/widget" >
</appwidget-provider>

widget.xml (@ layout / widget.xml)

<ImageView android:id="@+id/widget1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:contentDescription="@string/app_name"
        android:src="@drawable/sms_disabled"
        android:clickable="true"
        xmlns:android="http://schemas.android.com/apk/res/android" />

我已经尝试将android:padding="0dp"放在ImageView中,我已经尝试在widget.xml上放置一个布局,然后将android:padding="0dp"放在其上,但我仍然遇到此问题

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

小部件在ICS上较小,因为Android 4.0或更高版本会自动在小部件周围创建边距(另请参阅Android developers API)。解决方案是创建两个xml文件;一个用于ICS或更高版本,没有额外的边距,一个用于具有额外边距的旧版Android。

<强> RES /值/ dimens.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="widget_margin">8dp</dimen>
</resources>

<强> RES /值-V14 / dimens.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="widget_margin">0dp</dimen>  
</resources>

然后将android:layout_margin="@dimen/widget_margin"添加到窗口小部件xml文件中的布局

但是,带有(某些版本的?)三星Touchwiz Launcher的手机不会在ICS上应用自动保证金,因此您可能也想补偿这一点。关于此问题的更多信息:Widget margins not applied on ICS phone with TouchWiz launcher?