自定义View总结 – 触摸反馈
之前分析了Android触摸事件分发机制,在自定义View的时候进行触摸反馈,一般都是重写onTouchEvent
,当然也有一些工具类可以使用,本文就对这些工具类进行总结,他们是ViewConfiguration
,Scroller
,OverScroller
,VelocityTracker
,GestureDetector
,ScaleGestureDetector
,ViewDragHelper
。
之前分析了Android触摸事件分发机制,在自定义View的时候进行触摸反馈,一般都是重写onTouchEvent
,当然也有一些工具类可以使用,本文就对这些工具类进行总结,他们是ViewConfiguration
,Scroller
,OverScroller
,VelocityTracker
,GestureDetector
,ScaleGestureDetector
,ViewDragHelper
。
布局过程,就是程序在运行时利用布局文件中的代码来计算出实际尺寸和位置的过程。有两个阶段,测量阶段和布局阶段,分别对应measure
和layout
。
对于一个View
而言,默认的onMeasure
实现是:
Canvas.drawColor(@ColorInt int color)
颜色填充drawCircle(float centerX, float centerY, float radius, Paint paint)
画圆Paint.setColor(int color)
,Paint.setStyle(Paint.Style style)
,Paint.setStrokeWidth(float width)
,Paint.setAntiAlias(boolean aa)
drawRect(float left, float top, float right, float bottom, Paint paint)
画矩形drawPoint(float x, float y, Paint paint)
画点drawPoints(float[] pts, int offset, int count, Paint paint) / drawPoints(float[] pts, Paint paint)
画点(批量)drawOval(float left, float top, float right, float bottom, Paint paint)
画椭圆drawLine(float startX, float startY, float stopX, float stopY, Paint paint)
画线drawLines(float[] pts, int offset, int count, Paint paint) / drawLines(float[] pts, Paint paint)
画线(批量)drawRoundRect(float left, float top, float right, float bottom, float rx, float ry, Paint paint)
画圆角矩形drawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter, Paint paint)
绘制弧形或扇形drawPath(Path path, Paint paint)
画自定义图形drawBitmap(Bitmap bitmap, float left, float top, Paint paint)
画 BitmapdrawText(String text, float x, float y, Paint paint)
绘制文字最近项目不太忙,解bug的间隙把百合仙子最近几年的博客翻看了一下,想起很多往事,权且把应该放到饭否的一些碎碎念放到这里吧。
仙子现在还在坚持使用InoReader,自从Google Reader关闭之后,我也尝试过几种替代工具,feedly,inoreader,QQ邮箱的阅读空间,把从Google Reader导出的OPML导入了进去,我登录了InoReader和feedly账号看了下,大部分博客都已经停更了,一片红,QQ邮箱阅读空间里面也一片狼藉,也懒得删,反正现在已经不用了。之前上大学的时候不像现在专一一个方向,订阅了好多博客,现在有了好多垂直的网站或者App来获取专一方向的信息,比如开发者头条,Gank.io,AndroidWeekly等。QQ邮箱的阅读空间被张小龙搬到微信弄成了公众号,不知不觉间订阅了好多公众号,直到上周微信弹出公众号订阅已达上限才发现原来自己订阅了这么多,可自从订阅号改版后打开更少了,有些公众号直接快捷方式放到了Launcher上,可也很少打开查看,sigh。
已迁移到gitbook,请访问EffectiveJava笔记。