android surfaceview 入门介绍
由于工作中需自定义控件,以前没写过。
开始时,实用view 实现了,经理说不好,担心效率低,要求每秒需要刷新10次左右。
然后,学习使用 surfaceview。
看了网上简单的Demo,找到himi的教程很不错。
简单说就是,继承 surfaceview 实现callback接口。
构造-加载数据,将资源图片读取为bitmap
创建-将背景bitmap使用 canvas 画出来
处理点击事件,保存消息队列
创建线程处理消息队列-(需要考虑同步)
=============================
需要注意点:
1,为了优化,每次更新指定区域,使用Canvas canvas = mHolder.lockCanvas(rect);指定一个区间
这里需要注意!如果想一次更新多个位置,或者同一个rect 内 更新多个图片,需要
Canvas canvas = mHolder.lockCanvas(rect); drawYouBitmap(); mHolder.unlockCanvasAndPost(canvas);
一次性画完再:
mHolder.unlockCanvasAndPost(canvas); 不然会出现闪烁
2,修改view大小,重写一个方法。。。
还有很多,有时间再写,这个之前找到办法,现在找不到了。。
3,多点触摸管理
根据设备而定,模拟器没办法多点。
我用HTCG10可以获得三个点
根据
x = (int) event.getX(1);
y = (int) event.getY(1);
可以获得第二点坐标
获得第三个依次为:
x = (int) event.getX(2);
y = (int) event.getY(2);
然后指定自己的逻辑代码处理。
另外,如果点击事件,move到自定义view外面去,就无法获得坐标!
所以,控制view大小很重要。
android surfaceview 入门介绍的更多相关文章
- Android CoordinatorLayout 入门介绍
Android CoordinatorLayout 入门介绍 CoordinatorLayout View 知道如何表现 在 2015 年的 I/O 开发者大会上,Google 介绍了一个新的 And ...
- Android SurfaceView入门学习
学习资料: Android 开发群英传 搜索学习资料时,搜到了罗升阳老师的Android视图SurfaceView的实现原理分析,老罗老师写的一系列博客,一年前开始学习Android时看不懂,现在依然 ...
- [原]Android Fragment 入门介绍
Fragment Fragment 产生,优点,用途,使用方法简介 1 Fragmeng简介 自从Android 3.0中引入fragments 的概念,根据词海的翻译可以译为:碎片.片段.其上的是为 ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解
原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...
- [译]:Xamarin.Android开发入门——Hello,Android深入理解
返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...
- [译]:Xamarin.Android开发入门——Hello,Android快速上手
返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...
- Hello, Android 快速入门
Hello, Android Android 开发与 Xamarin 简介 在这两节指南中,我们将 (使用 Xamarin Studio或 Visual Studio)建立我们的第一个 Xamarin ...
- Android编译系统入门(二)
Android.mk的使用方法 在上一篇Android编译系统入门(一)中我们只要介绍了Android系统使用make命令默认编译的依赖树是droid,而droid是一个伪目标,它有两个先决条件dro ...
- Android开发入门要点记录:四大组件
cocos2dx跨平台开发中需要了解android开发,昨天快速的浏览了一本Android开发入门教程,因为之前也似懂非懂的写过Activity,Intent,XML文件,还有里面许多控件甚至编程思想 ...
随机推荐
- InnoDB锁演示
create table t1( c1 int(10) unsigned not null default '0', c2 int(10) unsigned not null default '0', ...
- 背包问题模板,POJ(1014)
题目链接:http://poj.org/problem?id=1014 背包问题太经典了,之前的一篇博客已经讲了背包问题的原理. 这一个题目是多重背包,但是之前的枚举是超时的,这里采用二进制优化. 这 ...
- 20145238-荆玉茗 《Java程序设计》第6周学习总结
20145238 <Java程序设计>第6周学习总结 教材学习内容总结 第十章输入和输出 10.1.1 ·如果要将数据从来源中取出,可以使用输入串流,若将数据写入目的地,可以使用输出串流. ...
- HTTP head meta
HTTP(HyperTextTransferProtocol)即超文本传输协议,目前网页传输的的通用协议.HTTP协议采用了请求/响应模型,浏览器或其他客户端发出请求,服务器给与响应.就整个网络资源传 ...
- 高亮代码 SyntaxHighlighter
SyntaxHighlighter: http://alexgorbatchev.com/SyntaxHighlighter/download/ demo <!DOCTYPE html PUBL ...
- 绕不开的this
犹豫两秒要不要整理this,从红皮书上看了半天,没搞懂哎(弱爆了) 什么是this?this是在执行上下文创建时期创建的一个执行过程中不可改变的变量.执行上下文是指js引擎会将代码执行前需要的变量th ...
- 自学youku_web
仿youku架构 数据库设计 管理员 注册 登录 上传视频 删除视频 发布公告 普通用户 注册 登录 充会员 查看视频 下载免费视频 下载收费视频 查看观影记录 查看公告 思路 class Field ...
- Spring Cloud 入门 Eureka-Client服务提供
前面文章介绍了如果创建“服务注册中心”,现在创建“服务提供者”,并向服务注册中心注册自己,在服务提供方中尝试着提供一个接口来获取当前所有的服务信息. 先,创建一个基本的Spring Boot应用.命名 ...
- Linux下使用指定网卡进行ping操作
目录 1. 为什么要使用知道那个网卡ping操作 2. 使用指定网卡ping操作 3. 总结 1. 为什么要使用指定网卡ping操作 现在很多服务器都拥有双网卡甚至多网卡,有些是为了保持高 ...
- docker简介以及优缺点
1.docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制, ...