转载请注明出处:王亟亟的大牛之路
最近两天都没有写文章,一方面是自己在看书,一方面不知道写什么,本来昨天想写Glide或者RxAndroid的东西结果公司的“狗屎”网怎么都刷不好Gradle我也是无语了(翻墙也没用),准备今天背着笔记本 回家搞,真是服了。。
抱怨的话不说了,来看下这一篇要讲的主角 SurfaceView,关于SurfaceView的文章其实在别的一些站点上也有,因为我之前没写过,所以也就一直没整这部分的内容(别人写的好坏反正找好的点自己吸收吧,嘿嘿)
问题:SurfaceView是什么?
View类的子类
public class SurfaceView extends View
surfaceView是在一个新起的单独线程中可以重新绘制画面而View必须在UI的主线程中更新画面。
这点很重要,那我们可以在哪使用它?那些一直在刷的,还会耗性能的一些UI内容我们可以让他去画,毕竟不在主线程(想想渐变这类的东西)
再例举一些使用场景,假设我要画一个视图他和用户有交互,那么用View还是SurfaceView?
像这样的情况就比较推荐用View因为要有Touch事件,用View更合适。而0交互的那些场景用用SurfaceView对性能会有一定的帮助,接下来用例子来具体描述如何用SurfaceView。
先上效果图
效果很简单就是在一个Activity里设置了个白色背景,然后写了个“你好”。
来看下代码(一些知识点在标注里说明)
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;