创建单像素矩形

时间:2014-01-30 21:34:09

标签: android

我想创建一个像素笔划矩形,但android渲染两个像素。

这是我的xml代码:

<item>
    <shape android:shape="rectangle">    
        <solid android:color="#FFF" />
        <stroke android:width="1px" android:color="#000" />
    </shape>
</item>

以下是渲染内容的左上角:

enter image description here

我唯一的猜测是这个背景没有与设备像素对齐。

3 个答案:

答案 0 :(得分:0)

那么,基本上是一条线?您可以尝试使用类似

的内容
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line">
    <solid android:color="#FFF" />
    <stroke android:width="1px" android:color="#000"/>
</shape>
编辑:哎呀,觉得我误解了。我猜你总是可以用线画一个矩形。

答案 1 :(得分:0)

px在不同的屏幕尺寸上有不同的含义。我猜这是在更大的屏幕上?尝试将单位更改为dp,消除锯齿效果应消失

编辑:实际上,如果您只是希望屏幕上线条的物理厚度为当前尺寸的一半,则不会解决您的问题。它使它在所有类型的屏幕上看起来都相同并保持稳固的外观,如果这是你的抱怨

答案 2 :(得分:0)

这是由蜂窝状和后来引入的双线性过滤引起的。有两种解决方案:

  1. 使用此标记

    禁用清单中的所有硬件加速(坏主意)

    机器人:硬件加速=&#34;假&#34;

  2. 在受影响的视图上使用xml属性仅使用软件进行渲染

    机器人:layerType =&#34;软件&#34;

  3. 我在这里找到了解决方案:

    Blurred 1dip shape lines (borders) on Android