亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

【Android游戲開(kāi)發(fā)之六】在SurfaceView中添加組

系統(tǒng) 2656 0

Himi 原創(chuàng), 歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明! 謝謝。

原文地址: http://blog.csdn.net/xiaominghimi/archive/2010/12/26/6099194.aspx

各位童鞋請(qǐng)你們注意:surfaceview中確實(shí)有 onDraw這個(gè)方法,但是surfaceview不會(huì)自己去調(diào)用!??!

而我代碼中的ondraw 也好 draw 也好,都是我自己定義的一個(gè)方法。。。放在線(xiàn)程中不斷調(diào)用的,一定要注意!!

昨天圣誕節(jié),沒(méi)有出去,而是一天時(shí)間全部糾結(jié)在如何在SurfaceView中添加組件,例如添加常用的Button,TextView等等、一開(kāi)始也想著從網(wǎng)上找些資料看看有沒(méi)有可參考的,但是發(fā)現(xiàn)搜到的結(jié)果仍是些童鞋對(duì)此很疑惑并且也在找尋答案,那么,這里就把圣誕節(jié)一天的成果來(lái)和各位童鞋分享;

1.因?yàn)槲覀兊腟urfaceView是個(gè)View對(duì)于添加的組件其實(shí)也是View,如果我們只是一味的想在SurfaceView中添加View組件其實(shí)是錯(cuò)誤的思想,當(dāng)然我一開(kāi)始也是想著直接在SurfaceView中定義或者去使用組件,但是結(jié)果肯定是不成功的, 因?yàn)閂iew不能添加View!

2.既然第一條肯定是錯(cuò)誤的,那么我們就應(yīng)該想到把我們的SurfaceView和組件都放在一個(gè)Layout里面,畢竟我們的的SurfaceView也是一個(gè)view和其他組件一同放在我們的layout里,那么這樣一來(lái)肯定就能完成在SurfaceView中添加組件的目的啦。下面先上截圖、

【Android游戲開(kāi)發(fā)之六】在SurfaceView中添加組件?。。?!并且相互交互數(shù)據(jù)!!??!

大家看到中間白色區(qū)域就是我們的SurfaceView啦,最上方是組件TextView ,最下方是Button 、對(duì)的,要的就是這個(gè)效果!而不是像前面文章中多個(gè)Activity切換,這樣都在一個(gè)界面中啦。哇哈哈啊。好、下面來(lái)看代碼吧:

先放上Xml 代碼:

以上代碼很簡(jiǎn)單,都是一些布局方式和各個(gè)組件一些屬性及顯示方式的設(shè)定,當(dāng)然主要看如何對(duì)我們的SurfaceView如何注冊(cè)在xml中的,那么每個(gè)組件都有id這樣為了對(duì)后面其交互數(shù)據(jù)用到,因?yàn)槲覀円獙?duì)每個(gè)組件操作,所以這里都索引了id方面從R文件中取出其對(duì)象。

那么,xml我們定義好了,看看代碼中如何實(shí)現(xiàn)的,這里先說(shuō)下Activity類(lèi)中代碼:

該有的備注在代碼后面都備注了,MySurfaceView.button_str,這個(gè)是自己的SurfaceView中定義的一個(gè)static 的變量用來(lái)交互數(shù)據(jù)用到;在那么下面就要看我們的SurfaceView,當(dāng)在Xml注冊(cè)需要注意什么了,我半天的時(shí)候都花在了這里?。?!一定要引起注意,這也是在SurfaceView中并顯示組件完成最重要的一步。

先分析:

1.SurfaceView類(lèi)的創(chuàng)建和實(shí)現(xiàn)等等和之前都是一樣的,該怎么去寫(xiě)還怎么去寫(xiě),但是!構(gòu)造函數(shù)一定要注意!


這里解釋下備注1: 這里有兩個(gè)構(gòu)造函數(shù),當(dāng)然我們用哪個(gè)都是可以的,但是在此時(shí)我們需要明確我們到底要使用哪個(gè)。

一個(gè)參數(shù)的構(gòu)造函數(shù): 如果是new出來(lái)的此類(lèi)實(shí)例肯定是沒(méi)有問(wèn)題,但是我們?yōu)榱四茉陲@示SurfaceView同時(shí)顯示別的組件,所以把自定義的SurfaceView也當(dāng)作組件注冊(cè)在了main——xml中,所以這里需要注意, 當(dāng)在xml中注冊(cè)的就必須在SurfaceView中使用這種含有兩個(gè)參數(shù)的構(gòu)造函數(shù)的方法 , xml初始化的時(shí)候會(huì)調(diào)用兩個(gè)參數(shù)的這個(gè)構(gòu)造方法, (當(dāng)時(shí)這個(gè)問(wèn)題困擾了半天的研究時(shí)間,最后在一個(gè)群友的幫助下才發(fā)現(xiàn)是這里出了問(wèn)題) 那么含有兩個(gè)構(gòu)造參數(shù)的方法里第二個(gè)參數(shù)指的自定義的組件的一些屬性,就像長(zhǎng)寬一樣,你可以給組件屬性,就是通過(guò)這個(gè)來(lái)傳遞的!

那么在SurfaceView 中并一同顯示組件也就到底完結(jié)了,回顧下,一共分為3步,1.將我們的SurfaceView 作為一個(gè)組件view 和其他組件一同放置到布局中,當(dāng)然布局的方式和顯示的方式大家自己隨自己喜歡定義! 2.在我們的SurfaceView中一定要使用兩個(gè)構(gòu)造函數(shù)的構(gòu)造函數(shù),一定!一定! 就這里有區(qū)別,別的還是該怎么處理就怎么處理,就是構(gòu)造函數(shù)換了 3.交互數(shù)據(jù),對(duì)其按鍵的綁定在 activity中完成,別把view綁定在咱們的SurfaceView中啊,否則報(bào)錯(cuò)- -、

這里說(shuō)下為什么要在activity中去綁定按鍵處理 而不是在我們的surfaceview中去綁定:

其實(shí)根據(jù)xml中定義button時(shí)的id 我們可以通過(guò)R.id 索引取到button,不管在activity中還是我們的surfaceview中都可以取到,但是!綁定button這一步如果在surfaceview中去寫(xiě)就一定報(bào)錯(cuò),原因我解釋下;

我們?cè)趚ml中定義我們的surfaceview 和 組件button、textview等等的時(shí)候 他們是同一級(jí)別的!!而不是把button包含在surfaceview

里,所以雖然在surfaceview中可以根據(jù)id索引到button但綁定的時(shí)候是無(wú)法找到button的,只有我們的activitysetContentView(R.layout.main); 顯示的button,所以只能在顯示它的activity中去綁定,這里需要注意下;

下面分享出源碼:

源碼下載地址:

http://download.csdn.net/source/2939526

(推薦大家訂閱本博客,因?yàn)樵鄣母滤俣瓤墒呛芸斓膥娃哈哈)

【Android游戲開(kāi)發(fā)之六】在SurfaceView中添加組件?。。?!并且相互交互數(shù)據(jù)?。。。?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 亚洲精品一区二区三区不卡 | 一区二区三区四区五区 | 一级看片 | jizz成熟丰满老女人 | 日本二区在线观看 | 日韩国产中文字幕 | 日本欧美在线观看 | 毛片大全免费看 | 久久黄色免费视频 | 国产午夜偷精品偷伦 | 欧美精品成人a多人在线观看 | 欧美艹逼视频 | 奇米影视在线观看 | 伊人三区| 日韩亚洲一区中文字幕 | 狠狠色噜噜狠狠米奇777 | 久久sese | 亚洲激情在线观看 | 青青青青青国产费线在线观看 | 欧美精品福利在线视频 | 一级视频片 | 国产精品视频视频久久 | japanese乱子欧美 | 久久最新精品 | 日本黄页免费 | 二区不卡| 亚洲国产精品a一区 | 欧美黄色网页 | 色婷婷久久| 久久精品成人国产午夜 | 午夜dj影院在线视频观看完整 | 国产精品久久久久久久久 | 国产色产综合色产在线观看视频 | 尤物久久99热国产综合 | 精品动漫中文字幕一区二区三区 | 亚洲精品大片 | 久草久| 香蕉在线视频观看 | 爆操日本美女 | 一级特黄一欧美俄罗斯毛片 | 久久99爰这里有精品国产 |