久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

Android如何繪制發光效果詳解

瀏覽:100日期:2022-09-23 10:36:29

前言

之前在看別人寫自定義view作繪制的時候,看到別人家的view自帶發光效果,看起來也是蠻炫酷的,于是自己也抽出時間來試用一下,這里做了一個模仿太陽的各種狀態樣式。

先上效果先上效果:

Android如何繪制發光效果詳解

實現方式:

public BlurMaskFilter(float radius, Blur style) {

實現是使用的Paint類的setMaskFilter()方法,傳入BlurMaskFilter對象實現高斯模糊發光。

float radius 設置模糊半徑 Blur style 設置發光樣式,包括 Blur.INNER(內發光),Blur.NORMAL(內外發光) Blur.SOLID(外發光),Blur.OUTER(僅外發光可見)

貼上代碼

public class MaskFilterView extends View { private Paint lightPaint; private int centerX, centerY; /** 發光范圍 */ 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如何繪制發光效果的文章就介紹到這了,更多相關Android繪制發光效果內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
主站蜘蛛池模板: 西藏| 德州市| 张家港市| 客服| 油尖旺区| 腾冲县| 阿拉善左旗| 黄石市| 台山市| 阳春市| 安康市| 武川县| 交城县| 乌拉特中旗| 红原县| 安顺市| 治县。| 原平市| 柏乡县| 和田市| 天全县| 土默特左旗| 三门县| 沿河| 尤溪县| 贡山| 沂南县| 玛曲县| 南城县| 江津市| 昌江| 五原县| 桦甸市| 清丰县| 蒲江县| 丹江口市| 浮梁县| 武穴市| 兴化市| 秦安县| 库伦旗|