Android自定义View之实现理财类APP七日年化收益折线图效果

这段时间的自定义View学习,学会了绘制柱状图、绘制折线图、绘制进度控件,那我们今天就来聊聊另外一种自定义的View,这就是我们常见的七日年化收益折线图效果。先看看长什么样。

这就是效果图了,元素相对而言还是比较多的,这里有线、柱状图、文字、折线、点等等。看起来好像很复杂,但是呢,只要一步一步的实现,那还是可以达到这种效果的,之前我们说过的, 自定义View,就像是在photo shop里面画图,想要什么就画什么,我们可以有很多的画笔工具,也可以有很多的图层。

先看看我们这一次用到哪些变量。

     Paint mTextPaint, mLinePaint,mPathPaint,mPointPaint;

      mPaintRectWidth;

     Path mPath;

      mWidth, mHeight;

       mCount = ;

       offsets=;

      mRectHeight;

     List<Float> xline= ArrayList<Float>();

     List<Float> yline= ArrayList<Float>();

      []x={f,f,f,f,f,f,f};

     String [] day={,,,,,,};

注释标记的也是够详细了,为了大家能够看得懂,也为了提高的博客质量,我们注意到,这里有文字,有数量,基本涵盖了我们这里索要用到的所有的变量。

下面开始初始化操作。

      () {

        mTextPaint =  Paint();
        mTextPaint.setAntiAlias();
        mTextPaint.setColor(Color.parseColor());
        mTextPaint.setTextSize();
        mTextPaint.setStrokeWidth();

        mPointPaint=  Paint();
        mPointPaint.setAntiAlias();
        mPointPaint.setColor(Color.parseColor());
        mPointPaint.setTextSize();
        mPointPaint.setStrokeWidth();

        mLinePaint =  Paint();
        mLinePaint.setAntiAlias();

        mPathPaint=  Paint();
        mPathPaint.setAntiAlias();
        mPathPaint.setColor(Color.parseColor());
        mPathPaint.setStyle(Style.STROKE);

        mPath= Path();

    }

这里主要就是给画笔初始化,可以看到每一个画笔的颜色、宽度都是不一样的,值的注意的是,这里面的画笔并没有设置镂空样式。

接下来我们看看怎么去赋值,老规矩,我们还是选择在onSizeChange()里面进行赋值,代码如下:


      ( w,  h,  oldw,  oldh) {
        .onSizeChanged(w, h, oldw, oldh);
        mWidth=()(getWidth()-getWidth()*);
        mHeight=()(getHeight()-getHeight()*);
        mRectHeight=()(getHeight()-getHeight()*);
        mPaintRectWidth=() (mWidth*/mCount);
        mLinePaint.setStrokeWidth(mPaintRectWidth);
    }

跟之前的不一样,我们以前所要用的宽度跟高度,直接就是使用方法里的,但是现在我们没有这么做,例如:(float)(getWidth()-getWidth()*0.1);我们进行了一定的处理,这样可以提高页面的舒适性,提高用户体验。

好了,准备工作做好了,接下来看看onDraw方法里面的操作,代码如下:


      (Canvas canvas) {
        .onDraw(canvas);
        onDrawRect(canvas);
        onDrawLine(canvas);
        canvasPath(canvas);
    }

哟呵,怎么这么简单,就三个东西?对的,就是这么简单粗暴,从名字中也可以看出,第一个是绘制矩形,第二个绘制线,第三个就是绘制折线。是不是很快呢,下面看看具体的实现方式。

第一个方法:


      (Canvas canvas) {
         ( i = ; i < ; i++) {
             (i%==) {
                mLinePaint.setColor(Color.parseColor());
            } {
                mLinePaint.setColor(Color.parseColor());
            }
             left  =() (mWidth *  /  + mPaintRectWidth * i + offsets);
             right=() (mWidth *  /  + mPaintRectWidth* (i + ));

            canvas.drawRect(left,()(mRectHeight*),right, mHeight, mLinePaint);
        }

    }

第二个:


    private void onDrawLine(Canvas ){

        .drawLine(mPaintRectWidth-mPaintRectWidth/, ()(mRectHeight), getWidth(),  ()(mRectHeight), mTextPaint);

         height;

         ( i = ; i < ; i++) {

             (i==) {
                height=i;
            } {
                height=mRectHeighti/);
                 =mTextPaint.measureText(x[()i]+);

                .drawLine(mPaintRectWidth+mPaintRectWidth/, height, getWidth(),  height, mTextPaint);

                .drawText(x[()i]+, ()(mPaintRectWidth-mPaintRectWidth), height+/, mTextPaint);
            }

        }

        .drawLine(() (mPaintRectWidth-mPaintRectWidth/),, () (mPaintRectWidth-mPaintRectWidth/),  mHeight, mTextPaint);
         ( i = ; i < ; i++) {

            .drawLine(() (mWidth *  /  + mPaintRectWidth * i),, () (mWidth *  /  + mPaintRectWidth * i),  mHeight, mTextPaint);

            .drawText(day[() i], () (mWidth *  /  + mPaintRectWidth * i), ()(mHeight+mHeight), mTextPaint);

            xline.add(() (mWidth *  /  + mPaintRectWidth * i));
        }

        xline.add(() (mPaintRectWidth-mPaintRectWidth/));

    }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android自定义view
, canvas
, 自定义view
, drawtext
, android 柱状图
, 自定义view的实现
, 自定义view类
, 自定义折线图
, 自定义折线
, view画折线图
, android天气折线图
, android折线图demo
, Android画图
View绘制
理财产品七日平均收益、七日年化收益率、七日年化收益计算器、七日年化收益率怎么算、七日年化收益率计算器,以便于您获取更多的相关知识。

时间: 2024-10-30 16:48:01

Android自定义View之实现理财类APP七日年化收益折线图效果的相关文章

Android自定义View之组合控件实现类似电商app顶部栏_Android

本文实例为大家分享了Android自定义View之组合控件,仿电商app顶部栏的相关代码,供大家参考,具体内容如下 效果图: 分析:左右两边可以是TextView和Button,设置drawableTop即可,中间的看着像是EditText,但是用过淘宝天猫等类似app的话会发现点击搜索不是在当前Activit进行搜索的,是跳转到另外的页面进行的,所以用TextView然后设置背景即可. 实现流程 参数列表: 设置属性文件:values下建立attrs.xml文件,添加需要自定义的属性. <?x

Android自定义View之组合控件实现类似电商app顶部栏

本文实例为大家分享了Android自定义View之组合控件,仿电商app顶部栏的相关代码,供大家参考,具体内容如下 效果图: 分析:左右两边可以是TextView和Button,设置drawableTop即可,中间的看着像是EditText,但是用过淘宝天猫等类似app的话会发现点击搜索不是在当前Activit进行搜索的,是跳转到另外的页面进行的,所以用TextView然后设置背景即可. 实现流程 参数列表: 设置属性文件:values下建立attrs.xml文件,添加需要自定义的属性. <?x

Android自定义View——自定义搜索框(SearchView)

概述 在Android开发中,当系统数据项比较多时,常常会在app添加搜索功能,方便用户能快速获得需要的数据.搜索栏对于我们并不陌生,在许多app都能见到它,比如豌豆荚 在某些情况下,我们希望我们的自动补全信息可以不只是纯文本,还可以像豌豆荚这样,能显示相应的图片和其他数据信息,因此Android给我们提供的AutoCompleteTextView往往就不够用,在大多情况下我们都需要自己去实现搜索框. 分析 根据上面这张图,简单分析一下自定义搜索框的结构与功能,有  1. 搜索界面大致由三部门组

Android自定义View之圆形进度条总结

最近撸了一个圆形进度条的开源项目,算是第一次完完整整的使用自定义 View .在此对项目开发思路做个小结,欢迎大家 Star 和 Fork. 该项目总共实现了三种圆形进度条效果 CircleProgress:圆形进度条,可以实现仿 QQ 健康计步器的效果,支持配置进度条背景色.宽度.起始角度,支持进度条渐变 DialProgress:类似 CircleProgress,但是支持刻度 WaveProgress:实现了水波纹效果的圆形进度条,不支持渐变和起始角度配置,如需此功能可参考 CircleP

Android自定义View实现折线图效果_Android

下面就是结果图(每种状态用一个表情图片表示): 一.主页面的布局文件如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height=&quo

Android自定义View实现简单的圆形Progress效果_Android

先给大家展示下效果图,如果感觉不错,请参考实现思路: 我们要实现一个自定义的再一个圆形中绘制一个弧形的自定义View,思路是这样的: 先要创建一个类ProgressView,继承自View类,然后重写其中的两个构造方法,一个是一个参数的,一个是两个参数的,因为我们要在xml文件中使用该自定义控件,所以必须要定义这个两个参数的构造函数.创建完了这个类后,我们先不去管它,先考虑我们实现的这个自定义View,我们想让它的哪些部分可以由使用者自己指定,比如说这个Demo中我们让他的外面圆的外边框颜色和宽

Android 自定义 view 控件实例

Android自定义view通过继承系统的View并重写部分方法来满足自己的特定需要.首先我们来看一下都有哪些方法可能需要被重写: onMeasure() 检测View组件及其子组件的大小 onLayout() 当该组件需要分配其子组件的位置.大小时 onTouchEvent 当发生触屏事件时 onDraw() 当组件将要绘制它的内容时 onKeyDown 当按下某个键盘时 onKeyUp  当松开某个键盘时 onTrackballEvent 当发生轨迹球事件时 onSizeChange() 当

Android自定义View实现折线图效果

下面就是结果图(每种状态用一个表情图片表示): 一.主页面的布局文件如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height=&quo

Android自定义View实现支付宝支付成功-极速get花式Path炫酷动画

本文手把手教你图片->SVG->Path的姿势.. 从此酷炫Path动画,如此简单. 效果先随便上几个图,以后你找到的图有多精彩,gif就有多精彩: 随便搜了一个铅笔画的图,丢进去 随手复制的二维码icon 来自大佬wing的铁塔 前文回顾 这里简单回顾一下前文,GIF如下图: PathAnimView接受的唯一数据源是Path(给我一个Path,还你一个动画View) 所以内置了几种将别的资源->Path的方法: 直接传string.(A-Z,0-9 "." &qu