我想在畫布上使用具有一定寬度的線(以像素爲單位,或理想地爲「dp」)顯示X/Y數據。我已經嘗試了Paint的setStrokeWidth(..)方法,並且確實改變了線條寬度,但它不是我所需要的。在我的情況下,我已經使用matrix.preScale(xScale,yScale)將畫布縮放到「實際工程單位」,因此X刻度表示0到100,Y是0到1.Patter對象的setStrokeWidth()方法似乎設置筆畫,使其跟隨我的矩陣preScale()設置。換句話說,水平線繪製得非常細,而垂直線繪製得非常厚。繪製具有一定像素寬度的線
有沒有一種方法來配置畫圖,以便無論繪製線的哪個方向,其寬度都是一致的像素數?
我試着定義一個Drawable,它是一行,並從中做出一個ShapeDrawable,然後將它應用到Paint上,但在運行時遇到了一些令人討厭的類鑄造錯誤。這讓我覺得這是一個錯誤的做法。但也許我放棄得太快了。
我明白這是一些可用的Android繪圖/繪圖軟件包,其中一些帶有源代碼,但我真的希望在這裏瞭解這個平臺,而不是使用第三方解決方案。
感謝您的任何提示! Rich
措辭巧妙的問題。我不知道,但祝你好運。 – 2011-04-15 23:04:18
我認爲你不應該使用你的單位適應矩陣。每個繪圖操作通常使用相同的管道,最終以一個形狀進行轉換和柵格化。因此,如果使用不同的軸單位,修改的矩陣會影響任何繪製操作的最終結果,從而扭曲線條行程。因此,繪製正確的方法是在將其傳遞給android繪製方法之前,按照自己想要的方式縮放座標。其他方面,你將無法畫出正確的線條和文字。 – dronus 2011-04-15 23:09:29
@dronus行,聲音忠告。謝謝你。我懷疑我需要避免使用matrix preScale,但希望能夠利用這種非常有用的縮放比例。 – Rich 2011-04-15 23:37:24