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

Nic*_*ion 7 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>
Run Code Online (Sandbox Code Playgroud)

这补充了1dp白色内部笔画.所以它应该是整个图像周围的正方形2 dp边框:

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

首先,这是4.1 7英寸仿真器的工作版本: 这是用于4.1的7英寸平板电脑模拟器

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

Nexus 7:

图像与搞砸填充

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

如果重要,那么这些是GridView的子代.不知道是否有人看过这些问题或有关于如何解决这些问题的想法.

kco*_*ock 2

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

在此输入图像描述

这是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>
Run Code Online (Sandbox Code Playgroud)

再说一遍,这只是你的,笔画宽度放大了。好处是,这根本不会改变预期结果,因为填充保持不变。事实上,您可以将stroke标签更改为solid并仍然得到相同的结果(但是,如果您的图像包含透明度,您会在透明区域看到纯色背景)。

尝试一下;让我知道它对您有何作用!