欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android自定義控制條效果

 更新時間:2020年07月03日 08:33:15   作者:rains at night  
這篇文章主要為大家詳細介紹了Android自定義控制條效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

ControlBar

自定義一個可以調節(jié)大小的控件,可以根據(jù)寬高來指定控制條方向。當width >= heigth時,為橫向控制條,否則為豎向控制條

onMeasure

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

1.主要的計算思路

先計算橫向的的坐標點,豎向的坐標點即橫向的逆時針旋轉90度再向下移一個heigth的長度。

//橫向坐標點
mHorLArcFirstPathX = mRadius + mLArcLength;
mHorLArcFirstPathY = startY + mBarHeight * (1.0f - LITTLE_ARC_PER_WIDTH) / 2.0f ;
//對應豎向坐標點
mLArcFirstPathX = mHorLArcFirstPathY;
mLArcFirstPathY = -mHorLArcFirstPathX + longSide;

onDraw

根據(jù)計算所得坐標點,構建路徑,繪圖

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ù)手指滑動,動態(tài)調整數(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);
  }
 }

實際效果如圖所示

橫向控制條

豎向控制條

項目github地址

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android實現(xiàn)異步加載圖片

    Android實現(xiàn)異步加載圖片

    這篇文章主要為大家詳細介紹了Android實現(xiàn)異步加載圖片的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 不允許錯過的Anndroid技術經(jīng)驗60條

    不允許錯過的Anndroid技術經(jīng)驗60條

    不允許錯過的Anndroid技術經(jīng)驗60條,與大家分享,希望可以提高大家Android開發(fā)水平,感興趣的朋友可以參考一下
    2016-02-02
  • Android studio設計簡易計算器

    Android studio設計簡易計算器

    這篇文章主要為大家詳細介紹了Android studio設計簡易計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Android制作漂亮自適布局鍵盤的方法

    Android制作漂亮自適布局鍵盤的方法

    最近做了個自定義鍵盤,但面對不同分辨率的機型其中數(shù)字鍵盤不能根據(jù)界面大小自已鋪滿,但又不能每種機型都做一套吧,所以要做成自適應,那這里主講思路,感興趣的朋友一起學習吧
    2015-12-12
  • android端使用openCV實現(xiàn)車牌檢測

    android端使用openCV實現(xiàn)車牌檢測

    這篇文章主要為大家詳細介紹了android端使用openCV實現(xiàn)車牌檢測,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Android WebView無法彈出軟鍵盤的原因及解決辦法

    Android WebView無法彈出軟鍵盤的原因及解決辦法

    這篇文章主要介紹了Android WebView無法彈出軟鍵盤的原因及解決辦法的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • Android實現(xiàn)全局懸浮框

    Android實現(xiàn)全局懸浮框

    這篇文章主要為大家詳細介紹了Android實現(xiàn)全局懸浮框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • Android App端與PHP Web端的簡單數(shù)據(jù)交互實現(xiàn)示例

    Android App端與PHP Web端的簡單數(shù)據(jù)交互實現(xiàn)示例

    本篇文章主要介紹了Android App端與PHP Web端的簡單數(shù)據(jù)交互實現(xiàn)示例,詳細的介紹了交互的代碼,非常具有實用價值,有興趣的可以了解一下
    2017-10-10
  • Android圖片采樣縮放功能實例代碼

    Android圖片采樣縮放功能實例代碼

    是為了更加高效的加載Bitmap。所以我們需要把android中的圖片進行采樣縮放,下面小編給大家分享Android圖片采樣縮放功能實例代碼,需要的朋友參考下吧
    2017-11-11
  • Android 點擊ImageButton時有“按下”的效果的實現(xiàn)

    Android 點擊ImageButton時有“按下”的效果的實現(xiàn)

    這篇文章主要介紹了 Android 點擊ImageButton時有“按下”的效果的實現(xiàn)的相關資料,需要的朋友可以參考下
    2017-03-03

最新評論