最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android自定義View實現(xiàn)餅狀圖帶動畫效果

 更新時間:2018年12月14日 08:30:18   作者:petterp  
這篇文章主要為大家詳細介紹了Android自定義View實現(xiàn)餅狀圖帶動畫效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一個簡單的自定義view餅狀圖,加入了動畫效果

先看一下效果

下面就直接上代碼了

public class Yidong2 extends AppCompatActivity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(new PointView(this));
 }
 
 public class PointView extends View {
  private int[] p1 = {0, 100, 200};  //存放弧度的數(shù)組
  //定義存放顏色的數(shù)組
  private int[] p2 = {Color.GREEN, Color.YELLOW, Color.RED};  
  Paint paint = new Paint();    //畫筆
  private float k;      //弧度變動后的值
 
  //定義矩形,用戶確定描繪的餅狀圖位置
  private final RectF rectF = new RectF(100, 100, 800, 800);
 
  //定義
  public PointView(Context context) {
   super(context);
   paint.setStyle(Paint.Style.FILL);  //設(shè)置畫筆為填充
   paint.setStrokeWidth(10f);    //設(shè)置畫筆寬度
   paint.setAntiAlias(true);    //抗鋸齒
 
   //屬性動畫
   ValueAnimator animator = ValueAnimator.ofFloat(0, 360);
   animator.setDuration(1000);    //設(shè)置動畫時間
   animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
     k = (float) animation.getAnimatedValue(); //獲取變動后的值
     invalidate();   //刷新布局
    }
   });
   animator.start(); //啟動動畫
  }
 
  @SuppressLint("DrawAllocation")
  @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
  @Override
  protected void onDraw(Canvas canvas) {
   super.onDraw(canvas);
   //這里做了不同顏色的范圍判斷,還可以進行封裝,為了便于學(xué)習(xí),就沒有再次封裝
   if (k < p1[1]) {
    shezhi(canvas, 0);
   } else if (k < p1[2]) {
    shezhi(canvas, 1);
   } else {
    shezhi(canvas, 2);
   }
  }
 
  //動畫方法,Android的動畫有三種,View動畫,幀動畫,屬性動畫,
  //這里對動畫方法進行簡單的封裝,只需要明白,如果存在多個顏色的話,在繪制第二個以后顏色時,每次都要先繪制先前所有顏色,再繪制當(dāng)前顏色,即可理解,這也就是動畫的基本邏輯。
  private void shezhi(Canvas canvas, int n) {
   for (int i = 0; i <= n; i++) {
    paint.setColor(p2[i]);
    canvas.drawArc(rectF, p1[i], k - p1[i], true, paint);
   }
  }
 }
}

已經(jīng)加入了詳細的注釋,同樣的原理,還可以將動畫加入到柱形圖等等。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android VideoView類實例講解

    Android VideoView類實例講解

    本文主要介紹Android VideoView類,這里對VideoView類詳細說明了使用方法,以及示例代碼,有興趣的朋友可以參考下,希望能幫助Android 開發(fā)的朋友
    2016-08-08
  • Android Bitmap像素級操作詳解

    Android Bitmap像素級操作詳解

    這篇文章主要介紹了Android Bitmap像素級操作詳解,想了解Bitmap的同學(xué)可以參考下
    2021-04-04
  • Android、Flutter為不同的CPU架構(gòu)包打包APK(v7a、v8a、x86區(qū)別)

    Android、Flutter為不同的CPU架構(gòu)包打包APK(v7a、v8a、x86區(qū)別)

    默認(rèn)情況下,Android和Flutter打包出來的Apk都是包含了所有架構(gòu)的,這樣打出來的apk體積相對于單架構(gòu)的apk有點大,這時,我們就需要分別打出不同的架構(gòu)包
    2023-08-08
  • Android實現(xiàn)模仿UCweb菜單效果的方法

    Android實現(xiàn)模仿UCweb菜單效果的方法

    這篇文章主要介紹了Android實現(xiàn)模仿UCweb菜單效果的方法,較為詳細的分析了Android模仿UCweb菜單效果的頁面布局及功能實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Android中 service組件詳解

    Android中 service組件詳解

    Service是Android的四大組件之一,以下是我結(jié)合Android Doc和網(wǎng)上資料的學(xué)習(xí)總結(jié),有不準(zhǔn)確的地方請高手指出,互相學(xué)習(xí)嘛。。。
    2016-08-08
  • Android AS創(chuàng)建自定義布局案例詳解

    Android AS創(chuàng)建自定義布局案例詳解

    這篇文章主要介紹了Android AS創(chuàng)建自定義布局案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Android小程序?qū)崿F(xiàn)選項菜單

    Android小程序?qū)崿F(xiàn)選項菜單

    這篇文章主要為大家詳細介紹了Android小程序?qū)崿F(xiàn)選項菜單,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Android開發(fā)之a(chǎn)ctivity的生命周期詳解

    Android開發(fā)之a(chǎn)ctivity的生命周期詳解

    這篇文章主要介紹了Android開發(fā)之a(chǎn)ctivity的生命周期,詳細分析了activity的運行原理與生命周期,需要的朋友可以參考下
    2016-06-06
  • Android自定義View仿微博運動積分動畫效果

    Android自定義View仿微博運動積分動畫效果

    這篇文章主要為大家詳細介紹了Android自定義View仿微博運動積分動畫效果,開啟了自定義view學(xué)習(xí)旅程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Android Activity狀態(tài)與操作探究

    Android Activity狀態(tài)與操作探究

    Activity作為Android四大組件之一,他的啟動絕對沒有那么簡單。這里涉及到了系統(tǒng)服務(wù)進程,啟動過程細節(jié)很多,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值
    2022-12-12

最新評論

新安县| 延庆县| 马鞍山市| 八宿县| 昌平区| 海兴县| 朝阳市| 固安县| 策勒县| 横山县| 台东市| 加查县| 鹤峰县| 横峰县| 开化县| 和林格尔县| 望都县| 梓潼县| 大连市| 思茅市| 平顶山市| 金华市| 绵竹市| 仙居县| 黑水县| 民权县| 衡水市| 滨州市| 米林县| 福安市| 奎屯市| 牡丹江市| 五指山市| 和田市| 大宁县| 武穴市| 宜川县| 潢川县| 长宁县| 革吉县| 普兰县|