-
绘制直线解析
canvas.drawLine(sx,xy,ex,ey,paint);
查看全部 -
保存canvas.save();的转态,canvas.translate(x, y);移动canvas的位置;
进行绘制;
绘制完毕后,恢复cavans的状态,调用canvas.restore();
查看全部 -
之后在onDraw(Canvas canvas);方法中实现自己的绘制逻辑
查看全部 -
setMeasureDimension(w,h);设置完宽和高后就可以使用
mRealWidth = getMeasureWidth() - getPaddingLeft() - getPaddingRight();
得到可用于绘制控件的可用真实的宽;
查看全部 -
计算好宽度和高度后,必须调用setMeasureDimension(w,h);应用计算的结果
查看全部 -
进度条的宽度值必须用户给定一个值或者使用matchParent
查看全部 -
对于模式为MeasureSpec.AT_MOST时,自己测量的高度(或宽度)不能超过给定的值(即MeasureSpec.getSize(measureHeight)的值)
对于MeasureSpec.UNSPECIFIED,则就使用计算的结果即可
查看全部 -
设置高度是必须添加PaddingTop 和PaddingBottom
结果 = getPaddingTop() + getPaddingBottom() + 最大绘制高度;
最大绘制高度=Math.max(Math.max(mReachHeight, mUnReachHeight), Math.abs(textHeight));
查看全部 -
文字高度的计算textHeight = (int) (mPaint.descent() - mPaint.ascent());
//前提是mPaint.setTextSize(mTextSize);已经设置过了
查看全部 -
当计算的到的模式为UNSPECIFIED或AT_MOST时,则高度的结果只需要自己进行测量
查看全部 -
根据模式不同计算测量高度值、
当模式为MeasureSpec.EXACTLY (-> 精确的或使用matchParent)时,则结果就是测量的结果
查看全部 -
在View的onMeasure(int w,int h);方法中获取宽度和高度的宽度模式和宽度值,高度模式和高度值
查看全部 -
获取自定义属性的值
查看全部 -
获取自定义的属性通过getContext().obtainStyleAttributes(atts,
R.styleable.HorizontalProgressbarWithProgress);
//R.styleable.HorizontalProgressbarWithProgress为自定义的属性集名称
得到TypeArray 对象,并在用完TypeArray对象后及时释放资源,即调用TypeArray的recycle()方法
查看全部 -
控件的宽度-padding的宽度=真正可用于绘制的宽度
查看全部
举报