我注意到运行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英寸仿真器的工作版本:
外围的边界是均匀的,并围绕整个图像。这就是我在所有其他设备上的工作方式。
Nexus 7:
灰色是背景颜色,但您可以看到右侧和底部填充没有得到遵守。现在,图像遮挡了边界。
如果重要,这些是GridView的子代。不知道是否有人看到过这些问题,或者对如何解决这些问题有所了解。
答案 0 :(得分:2)
在XML drawable中生成stroke
时,这似乎是一个错误。经过多次尝试,我把它缩小到了那个;它似乎是在形状的下侧和右侧错误地使笔划大小,即使以像素为单位指定。如果我只是将笔触宽度更改为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>
再次,只有你的笔画宽度增大了。好处是,这不会改变预期的结果,因为填充保持不变。实际上,您可以将stroke
代码更改为solid
并仍然具有相同的结果(但是,如果您的图片包含透明度,则会在透明区域中看到纯色背景)。
尝试一下;让我知道它对你有用!