2016年5月7日 星期六

[Android] canvas畫虛線無效問題


前言


最近有一個需求要自己定義的View畫一條虛線 , 參考了網上各位前輩的範例,

Canvas怎麼畫都是直線 , 最終查到一篇, 原來是硬體加速造成的問題.

DashPathEffect/drawLine not working properly when hardwareAccelerated="true"

https://code.google.com/p/android/issues/detail?id=29944


解法

關掉hardwareAccelerated

(1)只關掉這一個View的硬體加速

mycustomView = (MyCustomView) findViewById(R.id.mask);
mycustomView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

(2)關掉整個App的硬體加速

在manifest.xml中

<application>  裡,寫下

android:hardwareAccelerated=false 

(3) 只關閉單一個Activity中的硬體加速

<activity
  android:hardwareAccelerated="false" />
</application>

參考資料:

沒有留言:

張貼留言