Android自定义控件的总结

xiaoxiao2021-02-28  22

Android自定义控件的总结: 一、原理 https://blog.csdn.net/zhaihaohao1/article/details/78460228 https://blog.csdn.net/zhaihaohao1/article/details/78286464

二、View的生命周期 https://blog.csdn.net/zhaihaohao1/article/details/78500197

三、自定义控件View和ViewGrounp对应的例子 3.1继承View 绘制几何图形 https://blog.csdn.net/zhaihaohao1/article/details/65633161 通讯录 https://blog.csdn.net/zhaihaohao1/article/details/78410166 开关 https://blog.csdn.net/zhaihaohao1/article/details/78286464 https://blog.csdn.net/zhaihaohao1/article/details/80772866 水波纹 https://blog.csdn.net/zhaihaohao1/article/details/78488694 图案解锁 https://blog.csdn.net/zhaihaohao1/article/details/82704397 https://blog.csdn.net/zhaihaohao1/article/details/82704645 https://blog.csdn.net/zhaihaohao1/article/details/82704880 https://blog.csdn.net/zhaihaohao1/article/details/82705294 3.2继承ViewGrounp ViewPager https://blog.csdn.net/zhaihaohao1/article/details/80434499 https://blog.csdn.net/zhaihaohao1/article/details/80564569 侧滑删除菜单 https://blog.csdn.net/zhaihaohao1/article/details/78449003 ListView的下拉刷新 https://blog.csdn.net/zhaihaohao1/article/details/78563792 ListView的上拉加载 https://blog.csdn.net/zhaihaohao1/article/details/78563666 流式布局 https://blog.csdn.net/zhaihaohao1/article/details/81213932 侧滑菜单: https://blog.csdn.net/zhaihaohao1/article/details/82740536 https://blog.csdn.net/zhaihaohao1/article/details/82740871 https://blog.csdn.net/zhaihaohao1/article/details/82744122 https://blog.csdn.net/zhaihaohao1/article/details/82744475 https://blog.csdn.net/zhaihaohao1/article/details/82744697 卫星菜单 https://blog.csdn.net/zhaihaohao1/article/details/80874957

3.3自定义属性: https://blog.csdn.net/zhaihaohao1/article/details/78286774 https://blog.csdn.net/zhaihaohao1/article/details/82740871

3.4自定义控件所有文章: https://blog.csdn.net/zhaihaohao1/article/category/6162457/1?

四、事件的传递: 4.1理论 https://blog.csdn.net/zhaihaohao1/article/details/78338270 4.2侧滑删除菜单 反拦截ListView的事件 拦截子控件的事件 都有注释: https://blog.csdn.net/zhaihaohao1/article/details/78449003

五、各种坐标代表的意思 1、event.getX() event.getX()指的是当前控件(MySlideLayout)左上方为原点坐标,X轴上的坐标,向右越大 坐标和按下的位置有关系(比如这个控件宽度铺满屏幕,在左边按下开始坐标startX很小,在中间按下坐标startX就较大) event.getY() 同理

2、getScrollX() getScrollX()就是当前视图(MySlideLayout)相对于自己左上角为原点坐标,的偏移量 child.getScrollX()当前视图(MySlideLayout)子控件相对于自己左上角为原点坐标,的偏移量 当滑动的是当前的控件(MySlideLayout)时,getScrollX()有值,(本例滑动的是自己),child.getScrollX()是0; 当滑动控件是子控件时child.getScrollX()有值,getScrollX()是0 简单的说是滑动谁,谁的getScrollX()有值 从左滑到右是负值,从右到左是正值 getScrollY() 同理

3 、scrollTo(int x, int y) scrollTo中的dX,从左滑到右是负值,从右到左是正值 scrollTo中的dX,中的x就是(getScrollX() - distanceX),这是公式 (distanceX = endX - startX;) 代表的意思就是:将父视图左上角定为(0,0),在移动这个屏幕的左上角到父视图的点(x,y)处, (注意:此处的x,y是根据父视图的坐标系来定的)

4、startScroll(int startX, int startY, int dx, int dy) scroller.startScroll中的坐标 中第一个参数startX,参照父视图为原点坐标的坐标系,滑屏时经常使用getScrollX()(代表品目左边缘) 中第三个参数dx,表示正值向左滑,负值向右滑。 公式:目标 - getScrollX(); 这里要移动的目标是控件的宽,所以就是int dx, = delViewWidth - getScrollX(); 侧滑删除菜单有详细的注释 https://blog.csdn.net/zhaihaohao1/article/details/78449003

六、实现滑动的方法: 6.1 scrollTo(int x, int y); scrollBy(int x, int y);实现 理论: https://blog.csdn.net/zhaihaohao1/article/details/78460007 https://blog.csdn.net/zhaihaohao1/article/details/78479678 https://blog.csdn.net/guolin_blog/article/details/48719871 例子: https://blog.csdn.net/zhaihaohao1/article/details/80434499

6.2 Scroller对象实现 https://blog.csdn.net/zhaihaohao1/article/details/80564569

6.3直接使用View绘制 https://blog.csdn.net/zhaihaohao1/article/details/80772866

6.4属性动画

七、最后写的5篇文章 Android中重温自定义控件01----文本尺寸的测量,图片尺寸的测量 https://blog.csdn.net/zhaihaohao1/article/details/90751995

Android中重温自定义控件02----布局尺寸的测量 https://blog.csdn.net/zhaihaohao1/article/details/90754770

Android中重温自定义控件03----布局测量的使用,自定义ListView https://blog.csdn.net/zhaihaohao1/article/details/90755572

Android中重温自定义控件04----onLayout设置子布局的位置 https://blog.csdn.net/zhaihaohao1/article/details/90757455

Android中重温自定义控件05----onDraw绘制视图 https://blog.csdn.net/zhaihaohao1/article/details/90764180

Android中自定义View基础概念 https://mp.weixin.qq.com/s/9akzn3SByjjOyo-LBStmTg

转载请注明原文地址: https://www.6miu.com/read-2150054.html

最新回复(0)