android 关于view的绘制
来源:互联网 发布:mac升级后能退回吗 编辑:程序博客网 时间:2024/06/11 03:11
关于android 自定义view的绘制,学习将近一周了。我学习知识有个特点,就是先要了解大体的知识架构才能深入专研细节,这样的学习代价是很大的,耗时间,学习成本也很高,效率也很低,以至于到昨天我才真正学习了一个具体的知识点。
先总结一下总体的思路架子。view自带的方法有很多,我们要实现自定义的view,一般情况要重写onMeasure,onLayout,onDraw。分别是测量,布局,绘制。还有自定义的参数设置Typearray。掌握这四种基本掌握了自定义view的入门基础本事。之后还要涉及动画,视图(view)动画(在onDraw内就可以完成),属性动画ObjectAnimator动画,帧动画。
现在记录一些昨天写的代码段及理解,其实自己都没怎么懂。
//设置画笔 paint = new TextPaint(); paint.setColor(getResources().getColor(R.color.colorAccent)); paint.setAntiAlias(true); paint.setStyle(Paint.Style.STROKE); paint.setFlags(Paint.ANTI_ALIAS_FLAG);//设置为抗锯齿 paint.setStrokeCap(Paint.Cap.ROUND); paint.setStrokeWidth(3 * density); //获取屏幕宽长度 int witch = canvas.getWidth(); int hight = canvas.getHeight(); 或者是 float sw = this.getMeasuredWidth(); float sh = this.getMeasuredHigth(); //开始设置画布 //HSpace(横线宽度)和space是横线间距,自己设置 if (startX >= 0 ) { startX =-(hSpace + space); } else { startX += delta; } float start = startX; // draw latter parse while (start < sw) { canvas.drawLine(start, 105, start + hSpace,105, paint); start += (hSpace + space); } //刷新 invalidate();
关键的代码思路是选择一个起始点startX做判断,startX是自增长的,或者自减少。然后将他赋值给绘制的第一轮start,使用while判断的绘制一轮,然后刷新重新进入startx判断,使其变化后在赋值到start,用while进入第二轮,就这样下去,一直在进行绘制,是画面达到动态效果。如果去掉startX这个参数,只是使用start,使用while绘制一轮,那么显示的就是一个静态的画面。
阅读全文
0 0
- android 关于view的绘制
- 关于android ui的优化 view 的绘制速度
- 关于android ui的优化 view 的绘制速度[转]
- 关于android ui的优化 view 的绘制速度
- Android中View的绘制
- android view的绘制过程
- Android中View的绘制
- Android View绘制的流程
- Android View的绘制流程
- Android View的绘制过程
- android怎么样绘制view的
- android View的绘制流程
- Android View的绘制流程
- android--View 的绘制流程
- Android view的绘制流程
- android的view绘制流程
- Android View的绘制流程
- Android中View的绘制
- EhCache在JAVA中的应用
- 快速上手Intellij idea
- 【前端H5】bootstrap-table表格插件使用js设置高度及高度自适应
- springboot创建一个可执行的jar
- NLP计算词相关关系之word2vec
- android 关于view的绘制
- 浅谈Git(一)
- Java基础第5讲--循环控制语句
- java基础笔记整理
- PHP程序如何debug?
- 张宴:Tokyo Cabinet数据库及其扩展应用
- UNIX命令行快速入门2
- STM32寄存器操作端口模式SDA_OUT()/SDA_IN()
- 10大H5前端框架