前言
作為一個(gè)資深籃球愛(ài)好者,我經(jīng)常會(huì)用虎撲app看比賽直播,后來(lái)注意到文字直播界面右下角加了兩個(gè)按鈕,可以在直播過(guò)程中送虎撲幣,為自己支持的球隊(duì)加油。
具體的效果如下圖所示:
我個(gè)人覺(jué)得挺好玩的,所以決定自己實(shí)現(xiàn)下這個(gè)按鈕,廢話(huà)不多說(shuō),先看實(shí)現(xiàn)的效果吧:
這個(gè)效果看起來(lái)和popupwindow差不多,但我是采用自定義view的方式來(lái)實(shí)現(xiàn),下面說(shuō)說(shuō)過(guò)程。
實(shí)現(xiàn)過(guò)程
首先從虎撲的效果可以看到,它這兩個(gè)按鈕時(shí)浮在整個(gè)界面之上的,所以它需要和FrameLayout結(jié)合使用,因此我讓它的寬度跟隨屏幕大小,高度根據(jù)dpi固定,它的實(shí)際尺寸時(shí)這樣的:
另外這個(gè)view初始化出來(lái)我們看到可以分為三塊,背景圓、圓內(nèi)文字、圓上方數(shù)字,所以正常狀態(tài)下,只需要在onDraw方法中畫(huà)出這三塊內(nèi)容即可。先在初始化方法中將自定義的屬性和畫(huà)筆以及初始化數(shù)據(jù)準(zhǔn)備好:
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"}; // 計(jì)算背景框改變的長(zhǎng)度,默認(rèn)是三個(gè)按鈕 mChangeWidth = (int) (2 * mSmallRadius * 3 + 4 * margin);}
當(dāng)前題目:Android自定義View模仿虎撲直播界面的打賞按鈕功能-創(chuàng)新互聯(lián)
文章來(lái)源:http://www.rwnh.cn/article12/cscodc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、域名注冊(cè)、云服務(wù)器、用戶(hù)體驗(yàn)、虛擬主機(jī)、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
移動(dòng)網(wǎng)站建設(shè)知識(shí)