Android自定义view中必不可少的哪些方法和参数详解
来源:互联网 发布:java restful框架 编辑:程序博客网 时间:2024/06/16 22:31
经过第一篇的讲解我们基本知道自定义view的开发流程和参数属性,这里就来看一下我们自定义view必不可少的两个方法。但是我们不要忘了我们自定义view学习的过程,有了这个过程,我们才知道我们要学什么,该学什么,从哪里学起。
1.自定义view单纯的用画笔绘制view(死view)
2.自定义view增加手势
3.自定义view增加动画
4.自定义view手势动画交互 这4步让我们一步一步的来探索学习
这个过程我们要时刻谨记于心呀,时刻要知道自己处在哪个阶段,接下来应该学习什么,这样我们才会进步,才不会乱学一气,走火入魔呀。哈哈不扯了。
其实必不可少的方法就两个,一个是测量view的方法onMersure()和绘制view的方法onDraw();
这两个方法是非常非常重要的然后就是这两个方法中的参数,那也是灵魂所在。
1.首先看下onMersure()方法,这个方法的作用就是测量我们的view的尺寸。
具体怎么测量我们要引入一个类 MeasureSpec 这个类中有三个属性,分别为
1.MeasureSpec.AT_MOST
这个属性就是我们在布局文件中设置了wrap_content就是没有对view设置具体的宽高尺寸
2.MeasureSpec.EXACTLY
这个属性就是我们对布局中的 view设置了具体的宽高尺寸即:
android:layout_width="200dp"
android:layout_height="200dp" 或者 match_parent,有具体的值
3.MeasureSpec.UNSPECIFIED
这个属性就是对view没有限制,用的少
int widthMode = MeasureSpec.getMode(widthMeasureSpec);int heightMode = MeasureSpec.getMode(heightMeasureSpec);这个方法就是获得当前view的MeasureSpec的类型,和1,2,3作比较。判断当前的view是否设置了具体的宽高尺寸:
int widthSize= MeasureSpec.getSize(widthMeasureSpec);int heightSize= MeasureSpec.getSize(heightMeasureSpec);这是获得view的尺寸、例子:
@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int widthMode = MeasureSpec.getMode(widthMeasureSpec); int heightMode = MeasureSpec.getMode(heightMeasureSpec); int widthSize= MeasureSpec.getSize(widthMeasureSpec); int heightSize= MeasureSpec.getSize(heightMeasureSpec); if (widthMode==MeasureSpec.AT_MOST&&heightMode==MeasureSpec.AT_MOST){ widthSize = R.dimen.pwidth; heightSize = R.dimen.pheight; } //把宽高尺寸设置到view中去 setMeasuredDimension(widthSize,heightSize);}这里就是我们对 view 的宽高的测量了。然后就是拿到这个宽高 到 onDraw()方法里面去使用:
2.onDraw()方法的使用
@Overrideprotected void onDraw(Canvas canvas) { super.onDraw(canvas); }这里就是我们绘制view的地方,,canvas 就是 画布。拿到上面的宽高到此方法中去绘制 我们的view的形状和尺寸。
其中有这两个方法重画我们的view:
postInvalidate(); 这个方法针对子view,重画
invalidate(); 这个就是重画我们的view
通过这两篇的讲解,下一篇就能开始我们的自定义view 的 实战例子了,,,加油---期待下一篇,更新中。。
- Android自定义view中必不可少的哪些方法和参数详解
- 详解Android中自定义View的invalidate,Handler和postInvalidate
- android中自定义view的方法
- android在自定义view中自定义属性的方法
- android view 的SetVisibility(int v)方法参数值详解
- Android的自定义View详解
- Android自定义View的详解
- android 中自定义View中的参数
- android中自定义view需要了解哪些内容
- Android自定义View的方法
- Android自定义View的方法
- Android中自定义View的MeasureSpec介绍及使用详解
- android中对自定义View的onMeasure()方法的理解
- Android中自定义View和自定义动画
- Android中自定义View和自定义动画
- 在Android源码中扩展自定义View的方法
- Android中自定义View、ViewGroup理论基础详解
- Android 自定义View时处理wrap_content和padding的方法
- Errors running builder 'DeploymentBuilder' on project
- 文章标题
- post传值
- 倒计时器
- http基本内容
- Android自定义view中必不可少的哪些方法和参数详解
- eclipse 关联 Maven本地仓库的配置
- 常见的三维点云数据下载链接,自己整理+网上收集
- java enum(枚举)使用详解 + 总结
- TF/04_Support_Vector_Machines/02_Working_with_Linear_SVMs03_Reduction_to_Linear_Regression
- 数据科学的七个工作流程
- React + Redux 最佳实践 学习之 路由
- 387. First Unique Character in a String
- Centos7下安装php7