在android 3.0及更高版本上,可以使用setx/sety方法(或settranslationx/settranslationy)指定视图的绝对位置。这些方法采用浮点参数。
虽然可以在亚像素坐标系中指定视图的位置,但看起来android实际上不会使用坐标系的小数部分来渲染视图,至少在默认情况下不会。
这与ios上的行为不同,可以在下图中看到(放大400%):
在这里,我添加了两个uiimageviews(ios)/imageviews(android)。上一个使用整数坐标定位,下一个使用半像素坐标定位。在android上,在渲染之前,视图显然会捕捉到最近的整数坐标。是否有可能获得与ios相同的行为?
我承认在这个特定的例子中,android提供了最好的视觉质量。但我尝试启用子像素渲染的动机是实现更平滑的动画(在两个坐标之间转换视图时)。特别是对于低/中dpi设备上的慢速动画,很明显,在动画过程中视图总是捕捉到最近的整数坐标。在iOS上,这样的动画总是显得柔滑流畅。
顺便说一下,这是一个游戏。这是如此简单的图形,我想避免使用opengl,如果可能的话,但我不愿意放弃我可以在ios上得到的流畅的60fps动画。
最佳答案
因为android是基于java的,所以提示可以根据图形上下文进行调整。这可能会对图形性能产生重大影响。