ImageView上的锯齿状边缘

时间:2016-09-06 04:17:41

标签: android android-imageview

我有一个简单的ImageView,使用下面的代码稍微向左倾斜

<ImageView
    android:id="@+id/image_on"
    android:layout_width="48dp"
    android:layout_height="48dp"
    android:layout_marginLeft="30dp"
    android:layout_marginStart="30dp"
    android:layout_marginTop="-1dp"
    android:contentDescription="@id/image_on"
    android:scaleType="centerCrop"
    android:transformPivotX="48dp"
    android:transformPivotY="48dp"
    android:src="@drawable/houseimage"
    android:antialias="true"
    android:rotation="-6"/>

当查看低于XXHDPI的任何东西时,可以清楚地看到锯齿状的边。它也发生在更高分辨率的设备上,尽管不是很清楚。

放大的图像如下所示。

enter image description here

已使用反别名,但似乎没有帮助。任何建议如何平滑图像边?

1 个答案:

答案 0 :(得分:0)

没有找到任何直接的做法,因为显然Android并没有跨越视图边界执行反别名。为了解决这个问题,我们需要一个具有透明边框(1px就足够了)的视图,以允许它使用它的背景来消除别名。

或者,我们可以创建一个自定义ImageView,以编程方式添加1 px透明边框。有关此问题的解决方案,请参阅https://medium.com/@elye.project/smoothen-jagged-edges-of-rotated-image-view-1e56f6d8b5e9#.cfm8t71u8