Nexus 7平板电脑上的填充问题

时间:2012-07-25 18:47:11

标签: android

我注意到运行Android 4.1的Nexus 7平板电脑上的填充问题。具体来说,我有一个背景绘制填充,创建一个外部笔划:

  <?xml version="1.0" encoding="utf-8"?>
  <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >

  <stroke
    android:width="1dp"
    android:color="#59000000" />

  <padding
    android:bottom="1dp"
    android:left="1dp"
    android:right="1dp"
    android:top="1dp" />

  </shape>

这补充了1dp白色内行程。所以它应该是整个图像周围的方形2 dp边框:

我在实际的nexus设备和其他几个设备和7英寸果冻豆模拟器上进行了测试:

首先,这是4.1 7英寸仿真器的工作版本: This is the 7 inch tablet emulator for 4.1

外围的边界是均匀的,并围绕整个图像。这就是我在所有其他设备上的工作方式。

Nexus 7:

Image with messed up padding

灰色是背景颜色,但您可以看到右侧和底部填充没有得到遵守。现在,图像遮挡了边界。

如果重要,这些是GridView的子代。不知道是否有人看到过这些问题,或者对如何解决这些问题有所了解。

1 个答案:

答案 0 :(得分:2)

在XML drawable中生成stroke时,这似乎是一个错误。经过多次尝试,我把它缩小到了那个;它似乎是在形状的下侧和右侧错误地使笔划大小,即使以像素为单位指定。如果我只是将笔触宽度更改为2dip而不是1dip(所有其他内容保持原样),则结果如下:

enter image description here

这是我用于后映像背景的border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">

    <stroke
            android:width="2dp"
            android:color="#59000000"/>

    <padding
            android:bottom="1dp"
            android:left="1dp"
            android:right="1dp"
            android:top="1dp"/>

</shape>

再次,只有你的笔画宽度增大了。好处是,这不会改变预期的结果,因为填充保持不变。实际上,您可以将stroke代码更改为solid并仍然具有相同的结果(但是,如果您的图片包含透明度,则会在透明区域中看到纯色背景)。

尝试一下;让我知道它对你有用!