ユーザ用ツール

サイト用ツール


canvasが思い通りに動かずにハマった時のメモ

下記の条件が揃ったときにおこるらしい。
・端末がハードウェアアクセラレーションをサポートしており、かつオンになっている
・そのAPIレベルやメソッドがハードウェアアクセラレーションをサポートしていない

■Canvas#clipPath() はハードウェアアクセラレーションを備えたデバイスではサポートされないらしい。

なおAPI18以来はサポートが導入されている。 なので11-17の場合にのみレイヤータイプをソフトウェアに変更する

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2

      && Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
  setLayerType(LAYER_TYPE_SOFTWARE, null);

}

■Paint.Style.STROKEで点線にならない

■参考URL Hardware Accelaration http://developer.android.com/intl/ja/guide/topics/graphics/hardware-accel.html ハードウェアアクセラレーションが有効だとstrokeでの点線描写が上手く描写出来ない http://kirimin.hatenablog.com/entry/20140715/1405435581 Work around Canvas.clipPath() that is not supported in android any more http://stackoverflow.com/questions/8895677/work-around-canvas-clippath-that-is-not-supported-in-android-any-more

canvasが思い通りに動かずにハマった時のメモ.txt · 最終更新: 2015/07/24 17:07 by sou