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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android自定義控制條效果

瀏覽:58日期:2022-09-23 14:03:10

本文實(shí)例為大家分享了Android自定義控制條效果的具體代碼,供大家參考,具體內(nèi)容如下

ControlBar

自定義一個(gè)可以調(diào)節(jié)大小的控件,可以根據(jù)寬高來(lái)指定控制條方向。當(dāng)width >= heigth時(shí),為橫向控制條,否則為豎向控制條

onMeasure

根據(jù)用戶給定的width與height計(jì)算控制條的坐標(biāo)。

1.主要的計(jì)算思路

Android自定義控制條效果

先計(jì)算橫向的的坐標(biāo)點(diǎn),豎向的坐標(biāo)點(diǎn)即橫向的逆時(shí)針旋轉(zhuǎn)90度再向下移一個(gè)heigth的長(zhǎng)度。

//橫向坐標(biāo)點(diǎn)mHorLArcFirstPathX = mRadius + mLArcLength;mHorLArcFirstPathY = startY + mBarHeight * (1.0f - LITTLE_ARC_PER_WIDTH) / 2.0f ;//對(duì)應(yīng)豎向坐標(biāo)點(diǎn)mLArcFirstPathX = mHorLArcFirstPathY;mLArcFirstPathY = -mHorLArcFirstPathX + longSide;

onDraw

根據(jù)計(jì)算所得坐標(biāo)點(diǎn),構(gòu)建路徑,繪圖

super.onDraw(canvas); mBgPaint.setColor(Color.WHITE); canvas.drawPath(mBgPath, mBgPaint); mBgPaint.setColor(Color.GRAY); canvas.drawPath(mMaxPath, mBgPaint); canvas.drawPath(mPath, mPaint); mBgPaint.setColor(Color.WHITE); if(mDirection == HORIZONTAL){ canvas.drawCircle(mRadius + mPercent * mBarWidth, mRadius, mRadius, mBgPaint); canvas.drawCircle(mRadius + mPercent * mBarWidth, mRadius, mRadius - SPACING, mPaint); }else { canvas.drawCircle(mRadius, mHeight - (mRadius + mPercent * mBarWidth), mRadius, mBgPaint); canvas.drawCircle(mRadius, mHeight - (mRadius + mPercent * mBarWidth), mRadius - SPACING, mPaint); }

onTouchEvent

根據(jù)手指滑動(dòng),動(dòng)態(tài)調(diào)整數(shù)值大小

@Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_MOVE: float distance = 0; float maxDist = 0; switch (mDirection){ case HORIZONTAL: distance = event.getX(); maxDist = mWidth; break; case VERTICAL: distance = mHeight - event.getY(); maxDist = mHeight; break; } if(distance <= mRadius){ updateView(MIN_VALUE); }else if(distance >= maxDist - mRadius){ updateView(MAX_VALUE); }else { updateView(calculatingValue(distance)); } return true; default: return super.onTouchEvent(event); } }

實(shí)際效果如圖所示

橫向控制條

Android自定義控制條效果

豎向控制條

Android自定義控制條效果

項(xiàng)目github地址

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 闸北区| 大余县| 定西市| 福海县| 石狮市| 和硕县| 乌拉特前旗| 葫芦岛市| 鹤壁市| 岳阳县| 县级市| 洛阳市| 黄大仙区| 东乡族自治县| 余江县| 洪洞县| 中宁县| 渝北区| 方城县| 凤山市| 宜黄县| 嘉荫县| 平果县| 教育| 耒阳市| 苏尼特左旗| 桑植县| 镇原县| 鞍山市| 丹江口市| 方山县| 调兵山市| 苍溪县| 岗巴县| 成安县| 普洱| 镇江市| 兴安盟| 晋城| 博湖县| 崇左市|