Android基础知识梳理之View相关知识一
来源:互联网 发布:godaddy域名别名解析 编辑:程序博客网 时间:2024/06/05 18:18
listiew使用技巧:
使用viewholder 减少创建view。
当convertview 为空时才创建view.
使用notifidatasetchanged来刷新view
处理空的listiew
多布局的listview 通过getitemtype方法。
群英传中还提到的技巧有:
设置分割线、隐藏滚动条、取消点击效果、设置显示在第几项、遍历listview的item、动态修改listview的item、滑动监听。、
弹性listview 重写 overScrollBy方法。
其他:
注:一般使用recycleview替代listiew。 recycleview性能更好。自动复用。
android 滑动分析
5.x :android 坐标系: 左上角计数:getLocationOnScreen(int location[]) getRawX() getRawy()
5.x.2 :视图坐标系 父布局左上角:getX gety 方法
5.x.3 :MotionEvent类 先处理 actionDown事件。
5.2 滑动的七种实现:
layout()
offSetTopAndBottom() 和 offsetLeftAndRight()
LayoutParams()
scrollTo scrollBy
scroller类
属性动画
ViewDragHelper 这个类 没见过:
android 绘制机制和处理技巧
掌握 dip dp px sp dpi 及转换
Paint类 和 Canvas类
six.3 xml绘图
bitmap引入
Shape :
<shape
xmls:android=http://schemas.android.com/apk/res/android
android shape = ["rectangle"|"oval"|"line"|"ring"]>
<corers //这个最多的用途时设置圆角。
android radius=""
android: LeftRadius="5dp"/>
<gradient/>
<padding/>
<size/>
<solid/> 填充
<stroke/> 边框
</shape>
Layer 图层
<layer-list
xmls:android="https//..."
<item
android:drawable ="@drawable/ic_launch"/>
<item/>
</layer-list>
selector
six.4:android 绘图技巧
Canvas 重要方法:
save()
restore()
translate()
rotate()
saveLayer() 和saveLayerAlpha()
six5 Android图像图例色彩特效处理: 没用到过:略
six。six Android图像处理之图形特效处理: 没用到过 :略
six。seven Android图像处理之画笔特效:
PorterDuffXfermode 用于简单的圆角等。
效果图
用法
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
Shaper 没用过 略
PathEffect 没用过 略
six.8
SurfaceView
:待研究,另起一个章节来研究 和textureView一起。
seven Android 动画机制和使用技巧
7.1 Android View 动画框架
实现原理:在ViewGroup的drawChild方法中,获取该View的Animaiton的Transformation值,然后调用canvas.concat(transformToApply.getMatrix);方法调用矩阵运算完成动画帧。如果动画没有完成,继续调用invalidate()方法完成绘制。
主要有 透明度动画,旋转变化,伸缩变化和平移变化。效率高,简单。
AlphaAnimation 、RotateAnimation、TranslateAnimation、ScaleAnimation。
使用 AnimaitonSet 来统一管理,可以实现动画的集合效果。
7.2 属性动画
Animator框架
7.21. ObjectAnimator animator = ObjectAnimator.OfFloat(view,"traslationX",300);animator.setDuration(300);animator.star();
7.2.2 PropertyValuesHolder
7.2.3 ValueAnimator
7.2.4 动画监听
7.2.5 AnimatorSet
7.2.6 xml中使用属性动画
7.2.7animate 方法: view.animate().alpha(0).y(300).setDuration(300).withStartAction(new Runnable()).withEndAction(new Runnable)
7.3 Android 布局动画
ScaleAnimation sa = new ScaleAnimation(0,1,0,1);
sa.setDuration(2000);
LayoutAnimationController lac = new LayoutAnimationController(sa,0.5F);
lac.setOrder(LayoutAnimation.ORDER_NORMAL);
layout.setLayoutAnimaiton(lac);
7.4 插值器 Interpolators
7.5 自定义动画:重写:applyTransformation (float interpolatedTime,Transformation t);
7.6 svg动画 暂时没用过 略
- Android基础知识梳理之View相关知识一
- Android基础知识梳理之View相关知识
- Android知识梳理之自定义View
- JavaSE基础知识学习一知识梳理
- Android基础知识梳理之序
- Android 自定义view的知识梳理。
- Android知识梳理之Intent
- 自定义View知识梳理
- Android 之 BroadcastReceiver (一) 相关知识
- Android 之 ContentProvider (一) 相关知识
- 多线程相关知识梳理
- JVM相关知识梳理
- Android基础知识梳理之基础ADB命令
- 电商之梳理相关Zookeeper相关知识---HA
- Android知识梳理之Service整理
- Android知识梳理之BroadcastReceiver整理
- Android知识梳理之事件传递机制
- Android知识梳理之自定义ViewGroup
- 派生类构造函数和析构函数的构造规则
- B树,B+树,B*树相关知识以及Mysql数据库中的两种引擎
- HashMap的遍历
- 2. 产品的主线与产品的爆点
- Zookeeper与Kafka集群搭建
- Android基础知识梳理之View相关知识一
- 分治策略--排列问题
- 欢迎使用CSDN-markdown编辑器
- jpa学习笔记
- iOS封装功能生成 .framework
- swjtuoj月赛 C题 (dfs+剪枝)
- CSDN日报20170318——《一个程序员的五年工作总结》
- mabaties常用结果返回类型总结
- WisKey的眼神(hdu 1577)