【Android遊戲開發之七】(遊戲開發中需要的樣式)再次剖析遊戲開發中對SurfaceView中添加組件方案!

來源:互聯網
上載者:User

 李華明Himi 原創,轉載務必在明顯處註明:
轉載自【黑米GameDev街區】 原文連結: http://www.himigame.com/android-game/308.html

 

很多童鞋說My Code運行後,點擊home或者back後會程式異常,如果你也這樣遇到過,那麼你肯定沒有仔細讀完Himi的博文,第十九篇Himi專門寫了關於這些錯誤的原因和解決方案,這裡我在部落格都補充說明下,省的童鞋們總疑惑這一塊;請點擊下面聯絡進入閱讀:

【Android遊戲開發十九】(必看篇)SurfaceView運行機制詳解—剖析Back與Home按鍵及切入後台等異常處理!


       各位童鞋請你們注意:surfaceview中確實有 onDraw這個方法,但是surfaceview不會自己去調用!!!

  而我代碼中的ondraw 也好 draw 也好,都是我自己定義的一個方法。。。放線上程中不斷調用的,一定要注意!!

 

   上一篇我們已經可以在同一介面中既顯示我們的surfaceview和button、textview等組件,那麼基本算是成功了,但是身為遊戲開發人員,如果不是想故意要這種類似電影形式的展現方式(我們的surfaceview在中間 - -.很想播放電影似的。。),是絕對不允許遊戲的分量只是佔了中間那麼一部分,肯定需要全螢幕顯示,別的組件只是一個配角的角色。那麼下面先上一張看下為什麼修改與調整。

 

                                                                                  (圖1)

                           

 

 

看到我們畫出來的字型了吧,很悲劇被覆蓋了!只要有button就會有一塊長條,即使我們修改button中布局的顏色也只是把長條的顏色變成白色,當然好看是好看了,但是仍舊遮擋我們的字型!這可不是我們想要的結果。我們想要的效果應該是這樣的:

 

                                                                                  (圖2)

                                 

 

娃哈哈,這效果就對啦,我們的view佔滿全屏,而組件本身才會對我們的view中的內容有遮擋,不會多出一些無用的長條遮擋....

 

當時雖然想的方法就是布局xml的問題,我一開始想在我們xml中定義的surfaceview中直接添加按鈕,但是view不能添加view!所以沒辦法,就想到是否是布局的問題。經過多次嘗試才終於成功做到。

 

<?xml version="1.0" encoding="utf-8"?><br /><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br /> android:orientation="vertical"<br /> android:layout_width="fill_parent"<br /> android:layout_height="fill_parent"<br /> ><br /> <RelativeLayout<br /> android:layout_width="fill_parent"<br /> android:layout_height="wrap_content"<br /> android:layout_weight="1" ><br /> <com.himi.MySurfaceView android:id="@+id/view3d"<br /> android:layout_width="fill_parent"<br /> android:layout_height="fill_parent"/><br /> <Button<br /> android:layout_width="wrap_content"<br /> android:layout_height="wrap_content"<br /> android:layout_alignParentBottom="true"<br /> android:text="Himi Button_1"<br /> android:id="@+id/button1"/></p><p> <Button android:layout_width="wrap_content"<br /> android:layout_height="wrap_content"<br /> android:layout_alignParentBottom="true"<br /> android:layout_toRightOf="@id/button1"<br /> android:text="Himi Button_2"<br /> android:id="@+id/button2"/><br /> <TextView<br /> android:id="@+id/textview"<br /> android:layout_width="fill_parent"<br /> android:layout_height="fill_parent"<br /> android:text="This is Himi"<br /> android:textSize="32sp"<br /> android:textColor="#00FF00"<br /> android:gravity="center_horizontal"/><br /> </RelativeLayout><br /></LinearLayout><br /> 

 

xml 修改的不大,主要將之前的線性布局改成了相對布局。雖然改動不大,但是也真的費了不少時間去調整、這樣一來大家就可以在自己的遊戲Surfaceview中隨意添加組件啦,娃哈哈~~~

源碼在上一篇已經給出,這裡也只是對xml的修改大家需要可以去下載上一篇的源碼,將xml調整即可、

 

(推薦大家訂閱本部落格,因為咱的更新速度可是很快的~娃哈哈)

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.