- 浏览: 85073 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (89)
- 源码 (2)
- tomcat服务器连接数问题解决方法 (2)
- Android (26)
- JAVA 基本 (17)
- 设计模式 (6)
- Spring Struts Hibernate ibatis Web (9)
- 汇总小结 (1)
- 性能优化 (1)
- 小算法 (1)
- Android 异常 (1)
- Http web (1)
- Linux (4)
- C C++ (1)
- JNI ANDROID (1)
- UML (1)
- 其他 (1)
- 图像 (1)
- Spring (2)
- 分布式集群 (1)
- 数据库 (4)
- jquery (1)
- oracle和mysql 积累 (0)
- struts (1)
- 宕机 (1)
- mybaties (1)
- DH_Robot1_Chn_LeChange-Baby_V1.000.0005.3.R.160407.zip (0)
- 积累 (1)
- 架构 (1)
- 基础问题? (0)
- 111 (0)
最新评论
-
jbeduhai:
表达贴切,顶一个
ThreadLocal
转载文字http://hunankeda110.iteye.com/blog/890829
surfaceView 与View 的区别
如果你的游戏不吃CPU,用View就比较好,符合标准Android操作方式,由系统决定刷新surface的时机。
但如果很不幸的,你做不到不让你的程序吃CPU,你就只好使用SurfaceView来强制刷新surface了,不然系统的UI进程很可能抢不过你那些吃CPU的线程。
当然其实不止这两种方法来刷新Surface的,这两种只是纯java应用比较常见的方法。
SurfaceView和View最本质的区别在于,surfaceView是在一个新起的单独线程中可以重新绘制画面而View必须在UI的主线程中更新画面。
那么在UI的主线程中更新画面 可能会引发问题,比如你更新画面的时间过长,那么你的主UI线程会被你正在画的函数阻塞。那么将无法响应按键,触屏等消息。
当使用surfaceView 由于是在新的线程中更新画面所以不会阻塞你的UI主线程。但这也带来了另外一个问题,就是事件同步。比如你触屏了一下,你需要surfaceView中thread处理,一般就需要有一个event queue的设计来保存touch event,这会稍稍复杂一点,因为涉及到线程同步。
所以基于以上,根据游戏特点,一般分成两类。
1 被动更新画面的。比如棋类,这种用view就好了。因为画面的更新是依赖于 onTouch 来更新,可以直接使用 invalidate。 因为这种情况下,这一次Touch和下一次的Touch需要的时间比较长些,不会产生影响。
2 主动更新。比如一个人在一直跑动。这就需要一个单独的thread不停的重绘人的状态,避免阻塞main UI thread。所以显然view不合适,需要surfaceView来控制。
View 自定义 :
使用自定义View的两种基本方法
1 java代码: setContentView(new HelloView(this)); 缺乏灵活
2 xml 布局 :<com.test.HelloView
属性
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- my:textColor="#"
- my:textSize="22dp"
/>
2.1 <?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MyView">
<attr name="textColor" format="color"/>
<attr name="textSize" format="dimension"/>
</declare-styleable>
</resources>
2.2 构造函数
- public MyView(Context context, AttributeSet attrs){
- super(context, attrs);
- mPaint = new Paint();
- //TypedArray是一个用来存放由context.obtainStyledAttributes获得的属性的数组
- //在使用完成后,一定要调用recycle方法
- //属性的名称是styleable中的名称+“_”+属性名称
- TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyView);
- int textColor = array.getColor(R.styleable.MyView_textColor, 0XFF00FF00); //提供默认值,放置未指定
- float textSize = array.getDimension(R.styleable.MyView_textSize, 36);
- mPaint.setColor(textColor);
- mPaint.setTextSize(textSize);
- array.recycle(); //一定要调用,否则这次的设定会对下次的使用造成影响
- }
发表评论
-
HTC 刷机问题
2012-08-14 09:56 7241,没有运用工具刷机 2,没有备份系统还原 3,解锁 4 ... -
Android Parcelable
2012-05-31 21:11 1979Parcelable 传递对象时候用 Androi ... -
Android Handler
2012-05-29 16:53 620handler 将线程放入队列 Handler.poser( ... -
关于分辨率 多机型 dip px ........
2012-05-22 15:04 879320x480 (水平方向有320个像素点.垂直方向有480个 ... -
bitmap 内存溢出
2012-04-23 16:53 1275http://dyh7077063.iteye.com/blo ... -
风暴ssssss
2012-03-30 16:31 01 。做个以物易物的应用 2。大众服务和个性定制 3.菜单 ... -
Android 异常
2012-05-17 16:53 598dialog 无法依托 activity 时候 a ... -
Android title 高度定义
2012-02-04 15:56 1000mainifast.xml : <activit ... -
Android apk 安装脚本
2011-11-02 17:09 1028@echo off set cur_dir=%cd% ... -
Android 基本汇
2011-10-26 09:40 7381 Activity 生命周期 一般 ... -
署名认证相关知识
2011-10-21 18:26 2025命令: 生成keystone(存放一组证书和私钥的地方) ... -
Android UI Listview
2011-10-18 15:39 8581. list.setAdapter(adapter); ... -
Android 动画
2011-10-12 13:30 922http://www.htcplayer.com/thread ... -
Android 源码
2011-09-05 12:51 2574http://blog.csdn.net/maxleng/ar ... -
android 上开发air flash
2011-07-08 16:55 760http://www.jamesward.com/ ... -
登录web服务器jsonAndroid
2011-05-30 16:28 667如下: -
自定义组件
2011-05-30 15:25 759http://www.cnblogs.com/TerryBlo ... -
Android 远程回调
2011-05-19 12:39 17461.点击button 发送Handler1 Message ... -
Listview 表格
2011-05-13 10:40 698http://blog.csdn.net/hellogv/ar ... -
android TextView的字体颜色设置的多种方法
2011-05-11 09:49 1603TextView 的字体设置: 1 、直接通过配置文 ...
相关推荐
本压缩包文件"sjq.rar"包含了与SystemView相关的材料,特别是关于"滑动相关器"的资料,这是SystemView中一个重要的分析组件。 滑动相关器是SystemView用于追踪和分析系统中不同事件之间关系的一种工具。在实时系统...
以下是对"全面的Android view相关知识汇总整理"的详细解读: 1. **View的滑动方式** - `layout(left, top, right, bottom)`:直接修改View的坐标来改变位置。 - `offsetLeftAndRight()`和`offsetTopAndBottom()`...
SystemView简介及实例 SystemView是一款功能强大的仿真软件,能够进行动态系统设计与仿真,提供了多种信号源、接收端、操作符和功能块,满足从DSP、通讯信号处理到控制和数学模型的应用需求。 1\. 动态系统设计与...
FQScreenShot 一句代码保存截图,将View相关的页面保存为图片,支持 UIView,UIScrollView,UITableView,UICollectionView,UIWebView,WKWebView。支持iOS11
1. **配置FreeRTOS**: 在FreeRTOS源码中,需要包含SystemView相关的头文件,并启用相应的配置选项,如`configUSE_SYSVIEW`。 2. **编译SystemView库**: 将SystemView的源码编译为库文件,通常会生成一个`.a`或`.lib...
点击它,你将发现一系列与QlikView相关的功能。例如,“Open QlikView File”可以让你直接在Notepad++中打开QlikView工作簿,而“Check Syntax”则会检查你当前编辑的脚本是否有语法错误。 使用QlikView Notepad++...
本话题聚焦于“Anyview上机通过答案”,这可能是指在进行Anyview相关的实践操作或考试时,提供的一系列解答或解决方案。下面我们将深入探讨与Anyview使用、功能和可能遇到的问题相关的知识点。 1. **Anyview基础...
下面将详细解释与自定义View相关的知识点,并结合TopBar文件进行分析。 1. **自定义View的基本步骤**: - 创建一个新的Java类,继承自Android的基础View类,如View、LinearLayout、RelativeLayout等。 - 在`...
通过理解和实践这些知识点,开发者能够更好地应对面试中的自定义View相关问题,并在实际项目中创造出独特且高效的用户界面组件。在学习"SimpleCoverflow-master"这个项目时,可以深入理解如何利用Android的图形绘制...
1. dbgmsgcfg.dll:这可能是一个动态链接库文件,用于配置或支持DebugView相关的调试消息处理。DLL文件是Windows操作系统中用于实现代码共享和模块化的组件。 2. Dbgview.exe:这是DebugView的主要可执行文件,用户...
- 在开发板项目中添加SystemView相关的库文件。 - 配置SystemView采集频率等参数。 - 启用SystemView功能,并设置调试接口(通常为USB串口)。 3. **数据采集与分析**: - 运行SystemView软件,连接开发板。 -...
Redmond不仅仅是QlikView和Qlik Sense方面的专家,他还著有多本与QlikView相关的书籍,例如《QlikView开发者食谱》以及《QlikView服务器与发布者》。他在CRM领域有丰富的经验,并且是SalesLogix开发者的DevLogix系列...
- **新建View所用OU及用户**:在AD DS中创建组织单位(OU)来存储View相关的对象,并创建用户账户。 - **添加DHCP角色和配置**:安装并配置DHCP服务,以便自动分配IP地址给虚拟机。 - **导入管理View的组策略**:...
描述中的“wordview_cn2003_XiaZaiBa.zip”重复了标题信息,进一步确认这确实是一个与WordView相关的中文资源包,可能包含了安装文件和其他辅助文档。 标签“wordview”是这个压缩包的关键标识,它强调了这个文件的...
"JsonViewerPackage"可能是一个包含所有JsonView相关组件的打包文件,便于安装和部署。"Fiddler"是一个网络调试工具,它可以捕获和分析HTTP流量,与JsonView结合使用,可以帮助开发者在请求和响应中查看和解析JSON...
在Android应用中,可以调用PDFView的相关方法来打开本地存储或者放在assets目录下的PDF文件。assets目录是Android项目中存放非资源文件的一个特殊位置,通常用来存储需要在运行时读取的数据,如PDF、JSON文件等。 ...
README.txt文件通常包含有关软件的使用说明、版本信息和可能的更新日志,用户在遇到问题时可以查阅。 总之,HDFView作为一款强大的数据查看和管理工具,对于HDF5和Tensorflow用户来说是不可或缺的。它简化了数据的...
接下来,我们详细讨论与HexView和矢量数据相关的知识点: 1. **十六进制查看器**:十六进制查看器是一种工具,它可以显示文件的原始二进制数据,每个字节以十六进制数值的形式呈现,并且通常会有一列对应的ASCII...