我有一个简单的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的任何东西时,可以清楚地看到锯齿状的边。它也发生在更高分辨率的设备上,尽管不是很清楚。
放大的图像如下所示。
已使用反别名,但似乎没有帮助。任何建议如何平滑图像边?
答案 0 :(得分:0)
没有找到任何直接的做法,因为显然Android并没有跨越视图边界执行反别名。为了解决这个问题,我们需要一个具有透明边框(1px就足够了)的视图,以允许它使用它的背景来消除别名。
或者,我们可以创建一个自定义ImageView,以编程方式添加1 px透明边框。有关此问题的解决方案,请参阅https://medium.com/@elye.project/smoothen-jagged-edges-of-rotated-image-view-1e56f6d8b5e9#.cfm8t71u8。