
View
该专栏详细总结分析关于Android的View的各个知识点
李苏哲
这个作者很懒,什么都没留下…
展开
-
View滑动冲突
当我们内外两层View都可以滑动时候,就会产生滑动冲突!1.外层与内层滑动方向不一致,外层ViewGroup是可以横向滑动的,内层View是可以竖向滑动的(类似ViewPager,每个页面里面是ListView)2.外层与内层滑动方向一致,外层ViewGroup是可以竖向滑动的,内层View同样也是竖向滑动的(类似ScrollView包裹ListView)注: 一场景有外部处理和内部处理两种发誓,二场景主要看逻辑实现解决方案有两种,外部处理和内部处理外部拦截法:// 外层view 的原创 2020-06-07 00:07:47 · 225 阅读 · 0 评论 -
自定义控件_折线图(动态加载,阴影效果,滑动效果)
文章目录使用布局文件折线图实现类 LineChart.java基础类 BaseLineChart.java基础类 BaseChart.javastyle样式属性使用inflate.findViewById(R.id.lineChart); Random random = new Random();//生成随机数 for (int i = 0; i < 80; i++) { data[i][0] =random.nextInt(19)+1;原创 2020-06-07 00:05:15 · 639 阅读 · 0 评论 -
自定义控件_柱状图
文章目录使用布局文件实现步骤图表类 ColumnChart.java基础类 BaseColumnChart.java基础类 BaseChart.javaColorstyle样式属性使用ColumnChart lineChart = findViewById(R.id.lineChart); //设定20组数据 int[][] data = new int[20][5]; data[0][1] = R.color.blue_rgba_24_261_255原创 2020-06-06 23:51:38 · 244 阅读 · 0 评论 -
自定义控件_数字跳转特效
文章目录外部调用数字跳转特效实现类 RectNumberView.java外部调用 <com.example.ocean.charts.RectNumberView android:id="@+id/rectNumberView" android:layout_width="match_parent" android:layout_height="400dp" />RectNumberVi原创 2020-06-06 23:49:58 · 213 阅读 · 0 评论 -
自定义控件_侧滑删除实现
用法:<com.example.administrator.myapplication.GestureDemoView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="80dp">原创 2020-06-06 23:47:52 · 277 阅读 · 0 评论 -
View的绘制流程一(视图的加载)
文章目录视图层级关系PhoneWindow的初始化ActivityThread.performLaunchActivityActivity的setContentViewPhoneWindow.setContentViewPhoneWindow.installDecorPhoneWindow.generateDecorPhoneWindow.generateLayout总结视图层级关系PhoneWindow的初始化PhoneWindow 伴随着 Activity 的创建而创建, 而 ActivityT原创 2020-06-06 23:45:28 · 369 阅读 · 0 评论 -
View的绘制流程二(视图的展示)
ViewRoot和DecorView整个界面的绘制是从ViewRoot开始的,ViewRoot的对应类是ViewRootlmp类,ViewRoot是连接DecorView和WindowManager的纽带。 界面绘制首先会调用其performTraversals()函数,然后它需要经过三个流程才能够将一个View绘制出来,分别经过measure,layout,draw三个流程,measure...原创 2018-08-09 17:28:07 · 1867 阅读 · 0 评论 -
Android事件分发机制
在事件分发过程中有三个非常重要的方法:// 该方法用于事件分发,在每次事件中该方法一定会被调用,返回值表示是否拦截此次事件,返回值收到onIterceptTouchEvent和onTouchEvent影响.public boolean dispathTouchEvent(MotionEvent ev )// 该方法用于判断是否拦截事件,当当前View对某一时间进行了拦截,则该事件序列...原创 2018-07-26 16:40:19 · 207 阅读 · 0 评论