android自定义进度条

效果图片

这里写图片描述

原型图片

这里写图片描述
这里写图片描述

核心代码

在init()中对图片,控件距离初始化
在ondraw()中控制图片绘制位置
由于项目需要,没有对适配做出控制,setPos()方法固定据左右20dp位置

`public class SkinTestBar extends View {
private Context mContext;
private Bitmap backGround,thumb;
private Paint mPaint;
private Rect backRect;
private int centerThumb;
private int thumbLeft;
private int backWidth;

public SkinTestBar(Context context) {
    super(context);
    init(context);
}
public SkinTestBar(Context context, AttributeSet attrs) {
    super(context, attrs);
    init(context);
}
public SkinTestBar(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init(context);
}

private void init(Context context) {
    mContext = context;
    //图片加载
    backGround = BitmapFactory.decodeResource(getResources(), R.drawable.cst_bg);
    thumb = BitmapFactory.decodeResource(getResources(), R.drawable.jct_dian);
    mPaint = new Paint();
    centerThumb = thumb.getWidth()/2;
    backWidth = DensityUtil.getWindowWidth(mContext)-DensityUtil.dip2px(20)*2-backGround.getHeight()*2;
    setPos(0);
}
public void setPos(float pos){
    thumbLeft = (int) (DensityUtil.dip2px(10)-centerThumb+backGround.getHeight()+backWidth*pos-1);
}
@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    backRect = new Rect(getPaddingLeft(), getPaddingTop(),
            getMeasuredWidth()-getPaddingRight(), getMeasuredHeight()-getPaddingBottom());
    //绘制图片
    canvas.drawBitmap(backGround,null,backRect, mPaint);
    canvas.drawBitmap(thumb, thumbLeft, 0, mPaint);
}

}`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值