Android自定义带进度的刻度条

如何自定义控件?
1.自定义属性的声明和获取;
2.测量onMeasure;
3.布局onLayout(ViewGroup);
4.绘制onDraw;
5.onTouchEvent;
6.onInterceptTouchEvent(ViewGroup);
7.状态的恢复与保存(与Activity生命周期有关);

自定义绘制的PrograssBar的水平进度条如下 有刻度 刻度在中间显示
这里写图片描述

下面由代码实现:在values文件夹下建立attr.xml 放入要绘制进度条所需要的。分别是进度条字体①颜色和②大小,Prograss走过的条的③颜色和④高度,Prograss没有走过的条的⑤颜色和⑥高度,还有显示数值和进度条之间有间隔的空间⑦宽度。一共七个参数。

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!-- 声明-->
    <attr name="prograss_unreach_color" format="color"></attr>
    <attr name="prograss_unreach_height" format="dimension"></attr>
    <attr name="prograss_reach_color" format="color"></attr>
    <attr name="prograss_reach_height" format="dimension"></attr>
    <attr name="text_color" format="color"></attr>
    <attr name="text_size" format="dimension"></attr>
    <attr name="prograss_text_offset" format="dimension"></attr>

    <!-- 使用-->
    <declare-styleable name="horizonalPrograssBarWithPrograss">
        <attr name="prograss_unreach_color" ></attr>
        <attr name="prograss_unreach_height" ></attr>
        <attr name="prograss_reach_color" ></attr>
        <attr name="prograss_reach_height" ></attr>
        <attr name="text_color"></attr>
        <attr name="text_size"></attr>
        <attr name="prograss_text_offset" ></attr>


    </declare-styleable>
</resources>

新建包View,并新建类class horizonalPrograssBarWithPrograss,如下:

package com.chase.view;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.widget.ProgressBar;

import com.chase.cn.customprograssbar.R;

/**
 * Created by Chase on 2016/11/29.
 */

public class horizonalPrograssBarWithPrograss extends ProgressBar {
   

    //这里声明默认值
    private static final int DEFAULT_TEXT_SIZE = 10;//sp
    private static final int DEFAULT_TEXT_COLOR = 0xFFC00D1;
    private static final int DEFAULT_COLOR_UNREACH = 0XFFD3D6DA;
    private static final int DEFAULT_HEIGHT_UNREACH = 2
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值