前言
作為一個資深籃球愛好者,我經常會用虎撲app看比賽直播,后來注意到文字直播界面右下角加了兩個按鈕,可以在直播過程中送虎撲幣,為自己支持的球隊加油。
具體的效果如下圖所示:
我個人覺得挺好玩的,所以決定自己實現下這個按鈕,廢話不多說,先看實現的效果吧:
這個效果看起來和popupwindow差不多,但我是采用自定義view的方式來實現,下面說說過程。
實現過程
首先從虎撲的效果可以看到,它這兩個按鈕時浮在整個界面之上的,所以它需要和FrameLayout結合使用,因此我讓它的寬度跟隨屏幕大小,高度根據dpi固定,它的實際尺寸時這樣的:
另外這個view初始化出來我們看到可以分為三塊,背景圓、圓內文字、圓上方數字,所以正常狀態下,只需要在onDraw方法中畫出這三塊內容即可。先在初始化方法中將自定義的屬性和畫筆以及初始化數據準備好:
private void init(Context context, AttributeSet attrs) { //獲取自定義屬性 TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.HoopView); mThemeColor = typedArray.getColor(R.styleable.HoopView_theme_color, Color.YELLOW); mText = typedArray.getString(R.styleable.HoopView_text); mCount = typedArray.getString(R.styleable.HoopView_count); mBgPaint = new Paint(); mBgPaint.setAntiAlias(true); mBgPaint.setColor(mThemeColor); mBgPaint.setAlpha(190); mBgPaint.setStyle(Paint.Style.FILL); mPopPaint = new Paint(); mPopPaint.setAntiAlias(true); mPopPaint.setColor(Color.LTGRAY); mPopPaint.setAlpha(190); mPopPaint.setStyle(Paint.Style.FILL_AND_STROKE); mTextPaint = new TextPaint(); mTextPaint.setAntiAlias(true); mTextPaint.setColor(mTextColor); mTextPaint.setTextSize(context.getResources().getDimension(R.dimen.hoop_text_size)); mCountTextPaint = new TextPaint(); mCountTextPaint.setAntiAlias(true); mCountTextPaint.setColor(mThemeColor); mCountTextPaint.setTextSize(context.getResources().getDimension(R.dimen.hoop_count_text_size)); typedArray.recycle(); mBigRadius = context.getResources().getDimension(R.dimen.hoop_big_circle_radius); mSmallRadius = context.getResources().getDimension(R.dimen.hoop_small_circle_radius); margin = (int) context.getResources().getDimension(R.dimen.hoop_margin); mHeight = (int) context.getResources().getDimension(R.dimen.hoop_view_height); countMargin = (int) context.getResources().getDimension(R.dimen.hoop_count_margin); mDatas = new String[] {"1", "10", "100"}; // 計算背景框改變的長度,默認是三個按鈕 mChangeWidth = (int) (2 * mSmallRadius * 3 + 4 * margin);}
當前題目:Android自定義View模仿虎撲直播界面的打賞按鈕功能-創新互聯
文章來源:http://vcdvsql.cn/article12/cscodc.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、域名注冊、云服務器、用戶體驗、虛擬主機、服務器托管
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯