2

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

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

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

例子

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

我承认在这个特定的例子中,Android 提供了最好的视觉质量。但我尝试启用亚像素渲染的动机是实现更流畅的动画(在两个坐标之间转换视图时)。特别是对于低/中 DPI 设备上的慢速动画,在动画期间视图总是捕捉到最近的整数坐标是非常明显的。在 iOS 上,像这样的动画总是显得如丝般顺滑。

顺便说一句,这是一个游戏。它在图形上非常简单,如果可能的话,我想避免使用 OpenGL,但我不愿意放弃我可以在 iOS 上获得的丝般流畅的 60fps 动画。

4

1 回答 1

3

由于 Android 是基于 java 的渲染提示可以针对图形上下文进行调整。这可能会对图形性能产生重大影响。

于 2012-09-21T07:51:46.263 回答