直播平臺搭建,自定義氣泡效果(BubbleView)
直播平臺搭建,自定義氣泡效果(BubbleView)
package com.example.myapplication; import android.content.Context; import android.graphics.BlurMaskFilter; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; import android.view.View; import androidx.annotation.Nullable; import java.util.ArrayList; import java.util.List; import java.util.Random; public class BubbleView extends View { private int mBubbleMaxRadius = 15; // 氣泡最大半徑 px private int mBubbleMinRadius = 8; // 氣泡最小半徑 px private int mBubbleMaxSize = 50; // 氣泡數量 private int mBubbleRefreshTime = 50; // 重新整理間隔 private int mBubbleMaxSpeedY = 2; // 氣泡速度 private int mBubbleMaxSpeedX = 4; // 氣泡速度 private int mBubbleAlpha = 128; // 氣泡畫筆 private float mContentWidth; // 瓶子寬度 private float mContentHeight; // 瓶子高度 private RectF mContentRectF; // 實際可用內容區域 private Paint mBubblePaint; // 氣泡畫筆 public BubbleView(Context context) { this(context, null); } public BubbleView(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public BubbleView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); mContentWidth = dp2px(130); mContentHeight = dp2px(260); mBubblePaint = new Paint(); mBubblePaint.setColor(Color.GREEN); mBubblePaint.setAlpha(mBubbleAlpha); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec); int widthSize = MeasureSpec.getSize(widthMeasureSpec); int heightSize = MeasureSpec.getSize(heightMeasureSpec); int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec); int width; int height; if (widthSpecMode == MeasureSpec.EXACTLY || widthSpecMode == MeasureSpec.AT_MOST) { width = widthSize; mContentWidth = width; } else { width = (int) mContentWidth; } if (heightSpecMode == MeasureSpec.EXACTLY || heightSpecMode == MeasureSpec.AT_MOST) { height = heightSize; mContentHeight = height; } else { height = (int) mContentHeight; } setMeasuredDimension(width, height); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); mContentRectF = new RectF(getPaddingLeft(), getPaddingTop(), w - getPaddingRight(), h - getPaddingBottom()); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); drawBubble(canvas); } @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); startBubbleSync(); } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); stopBubbleSync(); }
目前為自定義屬性,佈局檔案中直接引用即可。
<com.example.myapplication.BubbleView android:layout_width="300dp" android:layout_height="100dp"/>
以上就是 直播平臺搭建,自定義氣泡效果(BubbleView),更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2997689/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 線上直播原始碼,自定義氣泡效果(BubbleView)原始碼View
- Android自定義View 水波氣泡AndroidView
- 直播平臺原始碼,Android自定義View實現呼吸燈效果原始碼AndroidView
- 直播平臺搭建原始碼,qt自定義滑動按鈕原始碼QT
- 直播系統平臺搭建,DataBinding自定義雙向繫結
- 直播平臺搭建,實現自定義設定登入頁面
- 直播平臺搭建,自定義View實現loading動畫載入View動畫
- 直播平臺原始碼,Flutter 自定義 虛線 分割線原始碼Flutter
- 如何搭建直播平臺?直播平臺搭建需要注意什麼?
- sangerbox平臺使用(四)氣泡圖的繪製
- 直播平臺搭建原始碼,bootstrap實現圖片輪播效果原始碼boot
- css3氣泡動態上升效果CSSS3
- 直播平臺原始碼,自定義下拉重新整理控制元件原始碼控制元件
- 直播系統程式碼,自定義平臺私聊對話方塊
- 直播平臺軟體開發,實現自定義標題欄
- 直播平臺原始碼,el-button自定義圖片顯示原始碼
- 直播系統平臺搭建,自定義控制元件根據圖片寬度設定長度控制元件
- 直播系統平臺搭建,大屏倒數計時動畫效果動畫
- 直播電商平臺開發,vue 自定義指令過濾特殊字元Vue字元
- 短視訊平臺搭建,Android自定義旋轉進度條Android
- 短視訊平臺搭建,自定義滾動條的樣式
- 直播平臺搭建,uni-app 實現搜尋關鍵詞高亮效果APP
- 直播平臺搭建,使用vue-pdf 實現pdf線上預覽並且自定義預覽框高度Vue
- 直播原始碼網站,自定義平臺介面,完成各項內容更改原始碼網站
- 直播平臺開發,TabLayout的使用和自定義紅點訊息提示TabLayout
- PHP直播平臺原始碼搭建教程PHP原始碼
- 直播軟體開發,工具類的自定義彈窗效果
- 搭建自己的直播平臺,將圖片設定為卡片式輪播效果
- 雕蟲曉技(十) Android超簡單氣泡效果Android
- 漲姿勢了,有意思的氣泡 Loading 效果
- 使用純 CSS 實現超酷炫的粘性氣泡效果CSS
- 直播系統程式碼,Android自定義View實現呼吸燈效果AndroidView
- 搭建直播平臺,iYiuMessage 訊息提示元件元件
- 快速運營搭建直播軟體平臺直播原始碼!原始碼
- 氣泡排序排序
- 直播平臺開發,自定義中間向兩邊滑動的滑動條
- 直播平臺原始碼,用CSS製作毛玻璃效果(高斯模糊效果)原始碼CSS
- 直播平臺開發經驗分享——直播平臺搭建環境配置詳解及分析