みんからきりまで

きりみんです。

ハードウェアアクセラレーションが有効だとstrokeでの点線描写が上手く描写出来ない

こんな感じで画像を使わなくてもXMLで点線を描写出来るわけだけど

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">
    <stroke
        android:width="2dp"
        android:color="#000000"
        android:dashWidth="5dp"
        android:dashGap="5dp" />
</shape>


targetSDKのバージョンを上げたら点線がただの線になってしまって困ったのでメモ。


どうやらハードウェアアクセラレーションが有効になっていると駄目になるっぽい。
ImageViewにandroid: layerType="software"を指定してあげたら直った。
なんかこれに限らずハードウェアアクセラレーションが有効だと描写の挙動が変わる事が時々あるっぽいので、何か変になったらlayerTypeで直るか試してみると良さそう。


公式のHardware Acceleration解説ページに色々書いてあるっぽい(まだ読んでない)
Hardware Acceleration | Android Developers