- 浏览: 133595 次
- 性别:
文章分类
最新评论
Android SurfaceView onDraw()绘图问题
- 博客分类:
- Android
在继承SurfaceView的类中即使重写了onDraw()方法也是没有用的,因为SurfaceView虽然继承自View,但并没
重写onDraw(),其子类可以重写onDraw()但并不能自动调用。
解决办法:
首先SurfaceView的子类XXX要 implements SurfaceHolder.Callback,然后定义private SurfaceHolder sh = null;
在其构造函数中:
public XXX(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
sh = getHolder();
sh.addCallback(this);
}
//自定义绘制函数
public void doDraw(){
Paint p = new Paint(); // 笔触
p.setAntiAlias(true); // 反锯齿
p.setColor(Color.RED);
p.setStyle(Style.STROKE);
Canvas canvas = sh.lockCanvas();
canvas.drawColor(Color.WHITE);//背景
canvas.drawRect(10, 10, 100, 100, p);
sh.unlockCanvasAndPost(canvas); //提交绘制内容
}
在需要绘制的地方调用doDraw()即可。
//继承自view的onDraw方法
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint p = new Paint(); // 笔触
p.setAntiAlias(true); // 反锯齿
p.setColor(Color.RED);
p.setStyle(Style.STROKE);
canvas = sh.lockCanvas();
canvas.drawColor(Color.WHITE);//背景色
canvas.drawRect(10, 10, 200, 200, p);
sh.unlockCanvasAndPost(canvas); //提交绘制内容
}
在需要绘制的地方调用onDraw(null)即可。
注:重写SurfaceView的draw(),最终还是调用的onDraw(),但是调用draw(null)时会有异常。
发表评论
-
Android onTouchEvent, onClick及onLongClick的调用机制
2012-03-08 15:44 853针对屏幕上的一个View控件,Android如何区分应当触发o ... -
android 常用颜色表
2012-03-09 16:01 859<?xml version="1.0" ... -
android ndk 环境搭建及基本编程思路
2012-03-28 16:09 847本文主要是介绍一下android ndk环境搭建及基本编程思路 ... -
windows下eclipse android-ndkr7b环境配置
2012-03-31 19:49 869注意:android-ndkr7b版本中已经集成了cyg ... -
配置 eclipse ndk 环境遇到的问题
2012-04-01 08:52 945困惑了两天的环境配置问题,按照网上提供的方法去做总是错误 ... -
Android 配置 OpenCV2.3.1
2012-04-01 17:56 1983OpenCV2.3.1-android中大部分重要的AP ... -
Android中dip与px之间单位转换
2012-04-11 16:10 690/** * 根据手机的分辨率从dip 的单位转成为px(像素 ... -
Android 自定义像素AVD模拟器无键盘
2012-04-18 14:26 3359在Android自定义像素(如:800X480)时,AV ... -
在Android虚拟机AVD中安装APK
2012-04-18 15:13 2579为了方便测试,有时候会需要在自定义的Android虚拟机A ... -
Android 自定义渐变背景
2012-07-04 08:36 1207在Eclipse的Android工程的res下建立dra ... -
Android 隐藏系统状态栏和标题栏
2012-07-04 09:06 1178Android中若想 隐藏系统状态栏和标题栏(全屏显示)的 ... -
Android双SurfaceView实现底部拍照,顶部绘图
2012-07-04 10:36 1478当SurfaceHolder对象的类型设置为Surf ... -
Android数据的四种存储方式之SharedPreferences、SQLite、ContentProvider和File
2012-07-06 15:32 2713Android系统一共提供了四种数据存储方式,分别 ... -
Android SQLite存取图像
2012-07-06 18:36 904Android SQLite存取图像的简单方法如下: ... -
Android 继承SQLiteOpenHelper自定义DBHelper存取数据与图像
2012-07-10 15:07 1338Android 继承SQLiteOpenHelper自定 ... -
Android使用SQLiteDatabase直接存取数据与图像
2012-07-10 15:15 1011Android使用SQLiteDatabase直接存取数 ... -
Android 系统菜单与自定义菜单
2012-07-25 16:28 2183Android 系统菜单与自 ...
相关推荐
Android的SurfaceView实现图片缩放、滑动,网上资源不多,目前还有些问题,仅供参考。
Android SurfaceView 实现实时显示摄像头视频,详见博客:https://blog.csdn.net/qq_30297763/article/details/90241102
android使用双缓冲辨析及surfaceview使用例子
Android SurfaceView实现动画效果
android SurfaceView添加线程源码
这是在上网收集的,能够截取当前Activity中surfaceView中图片。本人亲测可以通过。
这是一个android SurfaceView双缓冲Demo,希望对大家理解android SurfaceView双缓冲有所帮助。
Android SurfaceView实现加载GIF动画
android surfaceview自定义拍照 绘制头像轮廓 注明:是借用网上的demo基础上进行修改的
Android开发中,如何实现SurfaceView添加组件view不被组件覆盖。
android中的surfaceview示例源码下载,Android SurfaceView在游戏开发中使用想当广泛,SurfaceView对于画面的控制有着更大的自由度,它不像View那样要用handler来更新,但是网上关于 SurfaceView使用这方面的参考...
SurfaceView游戏框架实例,讲解如何使用,如何掌握基础性东西
基于android的SurfaceView实现人物动画的一个简单示例程序。
Android圆形相机预览窗口,圆形SurfaceView
一个使用SurfaceView的Demo
android surfaceview圆角
android学习 SurfaceView实现人物动画,代码通过测试并且附有APK编译文件,可直接在手机上运行
android demo,使用SurfaceView,使用多线程技术,可以滑动的选择按钮组,动画效果非常流畅,按钮数量可以随意改变。
android摄像头预览界面呈现自定义的矩形框,只拍摄(矩形框)特定区域的图片,然后根据图片解析条码。