在Android 3.0及更高版本上,可以使用setX / setY方法(或setTranslationX / setTranslationY)指定View的绝对位置。这些方法采用浮点参数。
虽然可以在子像素坐标中指定视图的位置,但似乎Android实际上不会使用坐标的小数部分来渲染视图,至少在默认情况下不会。
这与iOS上的行为不同,可以在下图中看到(按比例增加400%):
这里我添加了两个UIImageViews(iOS)/ ImageViews(Android)。上部一个使用整数坐标定位,而底部一个使用半像素坐标定位。在Android上,View在渲染之前会清晰地捕捉到最接近的整数坐标。是否有可能获得与iOS相同的行为?
我承认在这个具体的例子中,Android提供了最佳的视觉质量。但我尝试启用子像素渲染的动机是实现更平滑的动画(在两个坐标之间平移视图时)。特别是对于低/中DPI设备上的慢动画,非常值得注意的是,在动画期间,视图总是被捕捉到最接近的整数坐标。在iOS上,像这样的动画总是显得丝般顺滑。
顺便说一句,这是一款游戏。图形化非常简单,我想尽可能避免使用OpenGL,但我不愿意放弃我可以在iOS上获得的流畅的60fps动画。
答案 0 :(得分:3)
由于Android基于java渲染提示,因此可以针对图形上下文进行调整。这可能会对图形性能产生重大影响。