2

Android 3.0 以降では、setX / setY メソッド (または setTranslationX / setTranslationY) を使用してビューの絶対位置を指定できます。これらのメソッドは float パラメーターを取ります。

サブピクセル座標でビューの位置を指定することは可能ですが、少なくともデフォルトでは、Android は実際には座標の小数部分を使用してビューをレンダリングしないようです。

これは、下の画像 (400% 拡大) で確認できる iOS での動作とは異なります。

例

ここでは、2 つの UIImageViews (iOS) / ImageViews (Android) を追加しました。上のものは完全な整数座標を使用して配置され、下のものは半ピクセル座標を使用して配置されます。Android では、ビューはレンダリング前に最も近い整数座標に明確にスナップされます。iOS と同じ動作をすることは可能ですか?

この特定の例では、Android が最高のビジュアル品質を提供することは認めます。しかし、サブピクセル レンダリングを有効にしようとする動機は、よりスムーズなアニメーションを実現することです (ビューを 2 つの座標間で変換する場合)。特に、低/中 DPI デバイスでの遅いアニメーションの場合、アニメーション中にビューが常に最も近い整数座標にスナップされることが非常に顕著です。iOS では、このようなアニメーションは常にシルクのように滑らかに表示されます。

ちなみにゲーム用です。グラフィックは非常にシンプルなので、できれば OpenGL の使用は避けたいと思いますが、iOS で得られる絹のように滑らかな 60fps のアニメーションをあきらめたくありません。

4

1 に答える 1

3

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

于 2012-09-21T07:51:46.263 に答える