Android如何繪制發(fā)光效果詳解
更新時間:2020年07月26日 15:42:37 作者:奔跑吧李博
這篇文章主要給大家介紹了關于Android如何繪制發(fā)光效果的相關資料,文中通過示例代碼介紹的非常詳細,對各位Android開發(fā)者們具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
前言
之前在看別人寫自定義view作繪制的時候,看到別人家的view自帶發(fā)光效果,看起來也是蠻炫酷的,于是自己也抽出時間來試用一下,這里做了一個模仿太陽的各種狀態(tài)樣式。
先上效果先上效果:
實現方式:
public BlurMaskFilter(float radius, Blur style) {
實現是使用的Paint類的setMaskFilter()方法,傳入BlurMaskFilter對象實現高斯模糊發(fā)光。
- float radius 設置模糊半徑
- Blur style 設置發(fā)光樣式,包括
- Blur.INNER(內發(fā)光),Blur.NORMAL(內外發(fā)光)
- Blur.SOLID(外發(fā)光),Blur.OUTER(僅外發(fā)光可見)
貼上代碼
public class MaskFilterView extends View { private Paint lightPaint; private int centerX, centerY; /** 發(fā)光范圍 */ private int radioRadius = 70; public MaskFilterView(Context context) { super(context); init(); } public MaskFilterView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); init(); } private void init() { lightPaint = new Paint(); setLayerType(LAYER_TYPE_SOFTWARE, null); lightPaint.setColor(Color.parseColor("#EC3E3E")); lightPaint.setMaskFilter(new BlurMaskFilter(radioRadius, BlurMaskFilter.Blur.INNER)); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { centerX = getLeft() + getMeasuredWidth()/2; centerY = getTop() + getMeasuredHeight()/2; super.onMeasure(widthMeasureSpec, widthMeasureSpec); } public void setBlurType(int blurType) { switch (blurType) { case 0: lightPaint.setMaskFilter(new BlurMaskFilter(radioRadius, BlurMaskFilter.Blur.INNER)); break; case 1: lightPaint.setMaskFilter(new BlurMaskFilter(radioRadius, BlurMaskFilter.Blur.NORMAL)); break; case 2: lightPaint.setMaskFilter(new BlurMaskFilter(radioRadius, BlurMaskFilter.Blur.SOLID)); break; case 3: lightPaint.setMaskFilter(new BlurMaskFilter(radioRadius, BlurMaskFilter.Blur.OUTER)); break; } invalidate(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawCircle(centerX, centerY, 150, lightPaint); } }
總結
到此這篇關于Android如何繪制發(fā)光效果的文章就介紹到這了,更多相關Android繪制發(fā)光效果內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android開發(fā)之搜索框SearchView用法示例
這篇文章主要介紹了Android開發(fā)之搜索框SearchView用法,結合實例形式分析了Android搜索框SearchView的基本功能、用法及相關操作注意事項,需要的朋友可以參考下2019-03-03Android開發(fā)中計算器的sin、cos及tan值計算問題分析
這篇文章主要介紹了Android開發(fā)中計算器的sin、cos及tan值計算問題,結合實例形式分析了Android三角函數運算中的弧度與角度計算問題與相關解決方法,需要的朋友可以參考下2017-11-11android?WindowManager的簡單使用實例詳解
這篇文章主要介紹了android?WindowManager的簡單使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08