Android上视图的亚像素定位/渲染

Android上视图的亚像素定位/渲染,android,Android,在Android 3.0及更高版本上,可以使用setX/setY方法(或setTranslationX/setTranslationY)指定视图的绝对位置。这些方法采用浮点参数 虽然可以在亚像素坐标中指定视图的位置,但Android似乎不会使用坐标的小数部分来渲染视图,至少默认情况下不会 这与iOS上的行为不同,如下图所示(放大400%): 这里我添加了两个UIImageView(iOS)/ImageView(Android)。上一个使用整数坐标定位,而下一个使用半像素坐标定位。在Androi

在Android 3.0及更高版本上,可以使用setX/setY方法(或setTranslationX/setTranslationY)指定视图的绝对位置。这些方法采用浮点参数

虽然可以在亚像素坐标中指定视图的位置,但Android似乎不会使用坐标的小数部分来渲染视图,至少默认情况下不会

这与iOS上的行为不同,如下图所示(放大400%):

这里我添加了两个UIImageView(iOS)/ImageView(Android)。上一个使用整数坐标定位,而下一个使用半像素坐标定位。在Android上,在渲染之前,视图会清晰地捕捉到最近的整数坐标。有可能获得与iOS相同的行为吗

我承认在这个具体的例子中,Android提供了最好的视觉质量。但我尝试启用亚像素渲染的动机是实现更平滑的动画(在两个坐标之间转换视图时)。特别是对于低/中DPI设备上的慢速动画,非常值得注意的是,在动画过程中,视图始终捕捉到最近的整数坐标。在iOS上,这样的动画看起来总是丝般光滑


顺便说一下,这是一场比赛。它的图形化非常简单,如果可能的话,我想避免使用OpenGL,但我不愿意放弃iOS上可以获得的平滑流畅的60帧动画。

因为Android基于java渲染,提示可以根据图形上下文进行调整。这可能会对图形性能产生重大影响