李华明Himi 原创,转载务必在明显处注明:
不少童鞋说个人代码运行后,点击home或者back后会程序异常,若是你也这样遇到过,那么你确定没有仔细读完Himi的博文,第十九篇Himi专门写了关于这些错误的缘由和解决方法,这里我在博客都补充说明下,省的童鞋们总疑惑这一块;请点击下面联系进入阅读:css
【Android游戏开发十九】(必看篇)SurfaceView运行机制详解—剖析Back与Home按键及切入后台等异常处理!html
各位童鞋请大家注意:surfaceview中确实有 onDraw这个方法,可是surfaceview不会本身去调用!!!android
而我代码中的ondraw 也好 draw 也好,都是我本身定义的一个方法。。。放在线程中不断调用的,必定要注意!!布局
上一篇咱们已经能够在同一界面中既显示咱们的surfaceview和button、textview等组件,那么基本算是成功了,可是身为游戏开发人员,若是不是想故意要这种相似电影形式的展示方式(咱们的surfaceview在中间 - -.很想播放电影似的。。),是绝对不容许游戏的份量只是占了中间那么一部分,确定须要全屏显示,别的组件只是一个配角的角色。那么下面先上一张截图看下为何修改与调整。字体
(图1)spa
看到咱们画出来的字体了吧,很悲剧被覆盖了!只要有button就会有一块长条,即便咱们修改button中布局的颜色也只是把长条的颜色变成白色,固然好看是好看了,可是仍旧遮挡咱们的字体!这可不是咱们想要的结果。咱们想要的效果应该是下图这样的:.net
(图2)线程
娃哈哈,这效果就对啦,咱们的view占满全屏,而组件自己才会对咱们的view中的内容有遮挡,不会多出一些无用的长条遮挡....3d
当时虽然想的方法就是布局xml的问题,我一开始想在咱们xml中定义的surfaceview中直接添加按钮,可是view不能添加view!因此没办法,就想到是不是布局的问题。通过屡次尝试才终于成功作到。code
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" > <com.himi.MySurfaceView android:id="@+id/view3d" android:layout_width="fill_parent" android:layout_height="fill_parent"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="Himi Button_1" android:id="@+id/button1"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_toRightOf="@id/button1" android:text="Himi Button_2" android:id="@+id/button2"/> <TextView android:id="@+id/textview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="This is Himi" android:textSize="32sp" android:textColor="#00FF00" android:gravity="center_horizontal"/> </RelativeLayout> </LinearLayout>
xml 修改的不大,主要将以前的线性布局改为了相对布局。虽然改动不大,可是也真的费了很多时间去调整、这样一来你们就能够在本身的游戏Surfaceview中随意添加组件啦,娃哈哈~~~
源码在上一篇已经给出下载地址,这里也只是对xml的修改你们须要能够去下载上一篇的源码,将xml调整便可、
(推荐你们订阅本博客,由于咱的更新速度但是很快的~娃哈哈)