3

这是我的应用程序的屏幕截图:

在此处输入图像描述

它取自Samsung Galaxy Note10.1 ( mdpi149 ppi)。

我的客户认为底部按钮周围的边界线和上方的圆角矩形是模糊的。

我使用形状作为背景,如下所示:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"
    >
    <corners
        android:radius="8dp" />

    <stroke android:width="1dp" android:color="@color/dark_gray" />

    <solid android:color="@color/sepia_bright" />

</shape>

当我将简单视图用作具有 1dp 高度的线时,如下所示:

<View
    android:background="@color/bright_gray"
    android:layout_width="match_parent"
    android:layout_height="1dp" />

正如您在下一个屏幕截图中看到的那样,它非常清晰:

在此处输入图像描述

简单的水平线是可以的,但图形周围的矩形再次模糊。

我究竟做错了什么?

谢谢你的帮助。

4

1 回答 1

5

我的第一个猜测是这是双线性过滤的问题(http://en.wikipedia.org/wiki/Bilinear_filtering)。

要修复它,请参阅View#setLayerType方法。

我在自定义视图中遇到了这个问题。在我的视图的 init 方法中,我有以下代码:

    if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB){
        this.setLayerType(View.LAYER_TYPE_SOFTWARE, null);          
    }

这解决了我的问题,但是您可以使用android:layerTypexml 属性或setLayerType视图上的代码中的方法来做同样的事情。

于 2014-03-25T18:46:34.043 回答