Posted at

hardwareAcceleratedとHTMLCanvasの不都合な関係

More than 5 years have passed since last update.

OS 4.1以降のAndroidで、hardwareAcceleratedが有効時にHTMLCanvasが2重化して表示される不具合。


OS 4.2.0以前に有効な対策(hardwareAcceleratedを無効化)

AndroidManifest.xmlで

android:hardwareAccelerated="false"
にする。

しかし、4.2.1以降の実機では、逆に複数重ねたCanvasが描画されなくなってしまった。


OS 4.2.1以降でも有効な対策(CSS側で対策)

AndroidManifest.xmlで

android:hardwareAccelerated="true"
もしくは、書かない(デフォルトはtrue)

canvasの親要素にoverflow:hidden;やoverflow:scroll;を持つものがないようにする。

参考:

- 下に表示されるOptionsMenuを明示的に非表示にする方法 | 日本Androidの会

- Android HTML5 Hardware Acceleration - Canvas | StackOverflow