2012-05-02 6 views
2

Android 3.0以降では、setX/setYメソッド(またはsetTranslationX/setTranslationY)を使用してViewの絶対位置を指定することができます。これらのメソッドはfloatパラメータをとります。Androidのビューのサブピクセル配置/レンダリング

サブピクセル座標でビューの位置を指定することはできますが、Androidは実際には座標の小数部分を使って実際には表示されません。

これは(スケールアップ400%)以下の画像で見ることができるiOSの挙動、異なる:

ここでIは、2つUIImageViews(IOSが)追加した

example

/ImageViews(アンドロイド)。上の方程式は全体の整数座標を使用して配置され、下の方位は半ピクセルの座標を使用して配置されます。 Androidでは、Viewはレンダリング前に最も近い整数座標にスナップされます。 iOSと同じ動作をすることは可能ですか?

この特定の例では、Androidが最高の視覚品質を提供することを認めます。しかし、サブピクセルレンダリングを有効にしようとする私のモチベーションは、より滑らかなアニメーションを実現することです(2つの座標間のビューを平行移動するとき)。特に、低/中程度のDPIデバイスでの低速アニメーションでは、アニメーション中にビューが常に最も近い整数座標にスナップされることが非常に目立ちます。このようなiOSアニメーションでは、常に滑らかで滑らかに見えます。

これはちょうどゲーム用です。可能であればOpenGLの使用を避けたいので、グラフィカルにシンプルですが、私はiOS上でできる滑らかな60fpsのアニメーションを放棄するつもりはありません。

答えて

3

AndroidはJavaのレンダリングヒントに基づいているため、ヒントはグラフィックスコンテキストの調整が可能です。これは、グラフィックスのパフォーマンスに大きな影響を与える可能性があります。

関連する問題