Android Nexus7平板电脑的填充问题

Android Nexus7平板电脑的填充问题,android,Android,我注意到运行安卓4.1的Nexus7平板电脑存在一些填充问题。具体来说,我有一个背景,可以用填充物绘制,创建外部笔划: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <stroke android:width="1dp"

我注意到运行安卓4.1的Nexus7平板电脑存在一些填充问题。具体来说,我有一个背景,可以用填充物绘制,创建外部笔划:

  <?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英寸jelly bean模拟器上对其进行了测试:

首先,这里是4.1 7英寸模拟器的工作版本:

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

Nexus 7:

灰色是背景色,但您可以看到右侧和底部的填充没有得到尊重。边界现在被图像模糊了


如果重要的话,这些是GridView的子项。想知道是否有人见过这些问题,或者对如何解决这些问题有什么想法。

在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>

同样,这是你的笔划宽度扩大。好消息是,这根本不会改变预期结果,因为填充保持不变。事实上,您可以将
stroke
标记更改为
solid
,并且仍然具有相同的结果(但是,如果图像包含透明度,则可以在透明区域中看到固体背景)


试试看;让我知道它是如何为你工作的

我忍不住认为这是由于可伸缩性,尽管对于XML可绘制文件,我不认为这有什么关系。。。这是一个延伸,但这是什么文件夹中的绘图?Nexus7是
tvdpi
,而不是
mdpi
,因此我倾向于认为这与某种程度的关系。嗯,我甚至不知道tvdpi的存在。我现在把它放在drawable nodpi中,因为我认为它是用xml定义的,不需要缩放。我只是对为什么它能在模拟器上工作而不能在设备上工作感到困惑。是的,即使是谷歌也建议不要担心Nexus7的tvdpi,但这显然看起来像是一个扩展问题。尝试将模拟器设置为213 dpi(tvdpi密度),看看问题是否会出现。当您选择内置WXGA800-7in时,默认情况下会设置为213 dpi。哦,在这一点上,这似乎是一个特定于设备的问题。这是一个渲染问题,将在未来的版本中修复。谢谢你的报告,对不起。请注意,这不是缩放问题。问题在于如何使用硬件加速渲染笔划矩形。这对我来说确实有效,为什么有效令人困惑:)但它确实有效,谢谢!不客气。:)我很高兴它起作用了,但我也希望我知道确切的原因。