Android 开发的几点小问题
来源:互联网 发布:为什么淘宝贷款用不了 编辑:程序博客网 时间:2024/06/10 02:01
1.ImageView 每隔100ms更换一张显示图片过程中出现OOM错误解决方法:
BitmapDrawable bitmapDrawable = (BitmapDrawable) image.getDrawable();
// 如果图片还未回收,先强制回收该图片
if (bitmapDrawable != null && !bitmapDrawable.getBitmap().isRecycled()){
bitmapDrawable.getBitmap().recycle();
}
image.setImageBitmap(BitmapFactory.decodeStream(assetFile));
2.assets文件夹下面的文件名称不能包含中文。
Android 基于Linux系统,Linux 允许在文件名中使用除上述符号之外的其它符号, 但并不建议用户这样做。如果Windows 下面文件名包含中文字符的文件,复制到Android项目的assets文件夹下面,运行此Android项目会报错,去掉文件名中的特殊字符就OK了。
3. 自定义View组件时候,如果重写onTouchEvent方法,不要返回return super.onTouchEvent(event),应该修改为return true,原因是:
(1)父类的onTouchEvent(event)方法可能没有做任何处理,但是返回了false。
( 2)一旦返回false,在该方法中再也不会收到MotionEvent.ACTION_MOVE及MotionEvent.ACTION_UP事件。
4.关于SuifaceView画图: Access to the underlying surface is provided via the SurfaceHolder interface, which can be retrieved by callinggetHolder()
. 通过getHolder()方法得到SurfaceHolder 接口: SurfaceHolder surfaceHolder = getHolder();
SurfaceView如何画图呢?
(1)对Canvas进行加锁
//获取canvas实例
Canvas canvas = surfaceHolder.lockCanvas();
(2)进行相应的画图操作
canvas.drawCircle(float cx, float cy, float radius, Paint paint);
(3).对Canvas进行解锁,将画好的画布提交,也就是进行重画
surfaceHolder.unlockCanvasAndPost(canvas);
View与SurfaceView区别
1.SurfaceView是View的子类。
2.View缺乏缓存机制,只能整个View更新;SurfaceView有双缓冲机制,可以局部更新;
3.SurfaceView是在一个新起的单独线程中可以重新绘制画面,而View必须在UI的主线程中更新画面。
如果更新频率频繁,用SurfaceView,否则用View。
如果有疏漏,请您指正。
- Android 开发的几点小问题
- Android开发的问题
- Android开发的小问题
- Android开发的小问题
- android开发的问题集合
- android开发 遇到的问题
- Android开发遇到的问题
- Android开发注意的问题
- Android开发遇到的问题
- Android开发遇到的问题
- 开发android碰到的问题
- android开发遇到的问题
- android开发遇到的问题
- Android 开发的一些问题
- android开发遇到的问题
- Android 开发遇到的问题
- Android开发的内存问题
- android开发遇到的问题:
- usaco/1.1 Your Ride Is Here
- 查找方法和算法的总结
- struts2+jquery+json集成
- 千万级并发实现的秘密:内核不是解决方案,而是问题所在!
- ubuntu下CHM阅读软件
- Android 开发的几点小问题
- 黑马程序员_IO流(1)
- 阿里巴巴2013实习招聘笔试题5月19日
- DataGridView DataGridViewCheckBoxColumn编辑时实时触发事件
- linux中的IO端口映射和IO内存映射
- oracle数据库归档模式浅析
- Graph and Queries hdu3762
- SGU133 Border
- 浅析人脸检测之Haar分类器方法