我正在嘗試使用Android Path類創建'發光效果'。但是,漸變不會彎曲以適應路徑。相反,它只是簡單地顯示在「上方」,並被剪裁到路徑的中風。使用方形路徑,下面的圖像顯示了我的意思是:沿路徑使用漸變
相反,應該看起來更像是這樣的:
換句話說,梯度遵循的路徑,特別是根據CornerPathEffect中設置的半徑包裹角落。
這裏是代碼的相關部分:
paint = new Paint();
paint.setStyle(Style.STROKE);
paint.setStrokeWidth(20);
paint.setAntiAlias(true);
LinearGradient gradient = new LinearGradient(30, 0, 50, 0,
new int[] {0x00000000, 0xFF0000FF, 0x00000000}, null, Shader.TileMode.MIRROR);
paint.setShader(gradient);
PathEffect cornerEffect = new CornerPathEffect(10);
paint.setPathEffect(cornerEffect);
canvas.drawPath(boxPath, paint);
任何想法?
另一種方法是在定義筆畫寬度時獲得「軟邊刷」效果。我已經嘗試過BlurMaskFilters,但是它們給出了統一的模糊效果,而不是從不透明到透明的過渡。有誰知道這是可能的嗎?
嘿史蒂夫 - 上週我發現了同樣的想法,事實上,當我的頭腦在漫長的駕駛中感到無聊時,我現在因爲不記得在這裏提到它而踢自己了!不過,我很高興你已經嘗試過並發現它能夠工作,並且瞭解你遇到的問題很有趣。感謝您分享您的代碼。我會在我的SVG解析器中添加類似的東西,我可能會定義自己的自定義名稱空間XML標記以在特定路徑上觸發此功能。輝煌的工作 - +1! – Trevor
該alpha應該是'255/numberOfPasses',不乘以'i' – njzk2