-
自定义控件查看全部
-
reach v. 到达,走到; 够…,抓…; 完成; format(出版物的) 版式; [自] (数据安排的) 形式; 电视节目的总安排(或计划); vt. 使格式化; 安排…的格局; 设计…的版面;查看全部
-
自定义ProgressBar的自定义属性步骤: 1.先在res资源目录下新建attr文件夹,并在其目录下创建一个xml文件 2.xml文件的主要内容是: <declare-styleable name=自定义ProgressBar类名> <attr name=自定义属性名></attr> <attr name=自定义属性名></attr> <attr name=自定义属性名></attr> ... </declare-styleable> 3.创建一个自定义类继承ProgressBar类查看全部
-
自定义ProgressBar控件的步骤查看全部
-
如果直接继承了ProgressBar类的话就可以不用自己手动写保存这个进度条状态的功能代码.因为ProgressBar底层代码已经实现了这个功能.查看全部
-
如何自定义控件查看全部
-
自定义控件的原因查看全部
-
自定义属性声明与获取查看全部
-
自定义控件步骤查看全部
-
1,自定义属性的声明与获取 2,测量onMeasure 3,布局onlayout 4,绘制onDraw 5,onTouchEvent 6,onInterceptTouchEvent 7,状态的恢复与保存查看全部
-
自定义view笔记: 为了更好的体验,才要自定义view 如何自定义控件 1: 自定义属性的声明与获取 2: 测量onMeasure 3: 布局onLayout 4: 绘制onDraw 5: onTouchEvent 6: onInterceptTouchEvent 7: 状态的恢复与保存查看全部
-
老师讲的很好!!!查看全部
-
1、属性的获取 2、控件宽高的测量——onMeasure查看全部
-
接着 onDraw //draw reach bar mPaint.setColor(mReachColor); mPaint.setStrokeWidth(mReachHeight); float sweepAngle = getProgress()*1.0f/getMax()*360; //弧度 RectF rectF = new RectF(0,0,mRadius*2, mRadius*2); canvas.drawArc(rectF, 0, sweepAngle, false, mPaint); //画一个弧 //draw text mPaint.setStyle(Paint.Style.FILL); mPaint.setColor(mTextColor); canvas.drawText(text, mRadius - textWidth/2, mRadius - textHeight, mPaint); canvas.restore(); }查看全部
-
4)onDraw @Override protected synchronized void onDraw(Canvas canvas) { String text = getProgress() + "%"; float textWidth = mPaint.measureText(text); //文字宽度:mPaint.measureText(text) float textHeight = (mPaint.descent()+mPaint.ascent())/2; //文字高度:(mPaint.descent()+mPaint.ascent())/2 canvas.save(); canvas.translate(getPaddingLeft()+mMaxpaintWidth/2, getPaddingTop()+mMaxpaintWidth/2); //移动坐标到指定位置 mPaint.setStyle(Paint.Style.STROKE); //draw unreach bar mPaint.setColor(mUnReachColor); mPaint.setStrokeWidth(mUnReachHeight); canvas.drawCircle(mRadius,mRadius,mRadius, mPaint); //因为已经移到坐标到指定位置了,所以圆心坐标为(mRadius, mRadius) 未完待续******查看全部
举报
0/150
提交
取消