您好,欢迎来到源码搜藏网!分享精神,快乐你我!
[加入VIP] 设为首页 | 收藏本站 | 网站地图 | Sitemap | TAG标签
  • 首 页
  • 在线工具
  • jquery手册
  • android开发银行卡操作步骤视图

    时间:2017-12-22 08:57 来源:互联网 作者:源码搜藏 浏览:收藏 挑错 推荐 打印

    • 源码类别:视图效果View Effects
    • 源码大小:未知
    • 编码格式:gbk
    • 授权方式:免费源码
    • 运行环境:Android studio
    • 官方网址:暂无
    • 欢迎加入QQ群讨论学习
    • Android学习交流
    继承View 实现自定义属性(不知道自定义属性的百度)

    public BootStepView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    // 加载自定义属性集合BootStepView
    TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.BootStepView);
    // 解析集合中的属性属性
    // 将解析的属性传入到画圆的画笔颜色变量当中(本质上是自定义画圆画笔的颜色)
    // 第二个参数是默认设置颜色(即无指定情况下使用)
    circularColor = typedArray.getColor(R.styleable.BootStepView_circular_color, Color.RED);
    circularSize=typedArray.getDimensionPixelSize(R.styleable.BootStepView_circular_size,16);
    circularTextSize=typedArray.getDimensionPixelSize(R.styleable.BootStepView_circular_text_size,60);
    circularTextColor= typedArray.getColor(R.styleable.BootStepView_circular_text_color, Color.WHITE);
    ....
    }

    在onMeasure()对View的宽高进行测量

    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    // 获取宽-测量规则的模式和大小
    int widthMode = MeasureSpec.getMode(widthMeasureSpec);
    int widthSize = MeasureSpec.getSize(widthMeasureSpec);
    // 获取高-测量规则的模式和大小
    int heightMode = MeasureSpec.getMode(heightMeasureSpec);
    int heightSize = MeasureSpec.getSize(heightMeasureSpec);
    int width=480;
    int height=240;
    if (widthMode == MeasureSpec.AT_MOST && heightMode == MeasureSpec.AT_MOST) {
    setMeasuredDimension(width, height);
    } else if (widthMode == MeasureSpec.AT_MOST ) {
    setMeasuredDimension(width, heightSize);
    }else if(heightMode== MeasureSpec.AT_MOST){
    setMeasuredDimension(widthSize, height);
    }
    }
       ## 在onDraw()实现
    protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    // 获取传入的padding值
    final int paddingLeft = getPaddingLeft();
    final int paddingRight = getPaddingRight();
    final int paddingTop = getPaddingTop();
    final int paddingBottom = getPaddingBottom();
    int width=getWidth();
    //开始绘制第一个圆
    int oneX=paddingLeft+circularSize*2;
    canvas.drawCircle(oneX,paddingTop,circularSize,paint);
    //开始绘制数字1
    paint.setColor(circularTextColor);
    paint.setTextSize(circularTextSize);
    canvas.drawText("1",oneX-circularTextSize/3,paddingTop+circularTextSize/3,paint);
    //开始绘制第一个线条
    paint.setColor(isTwoColor?circularColor:defaultColor);
    canvas.drawLine(oneX+circularSize,paddingTop,width/2-circularSize,paddingTop,paint);
    ...
    }
    android开发银行卡操作步骤视图转载请注明出处http://www.codesocang.com/gn-effects/37048.html 源码搜藏网所有源码来自用户上传分享,版权问题及牵扯到商业纠纷均与源码搜藏网无关
    标签: