第二章:Android游戏开发之前台渲染
1.布局管理
安卓的四種布局模式:
線性布局
表格布局
相對布局
單幀布局
坐標(biāo)布局
? ? ? 目前安卓建議不要用坐標(biāo)布局,容易因屏幕尺寸或者其他問題產(chǎn)生問題。這幾種布局我沒有展開說,是因?yàn)榫褪峭献Ь涂梢詫?shí)現(xiàn),目前沒看到什么好展開講得東西。
2.常用控件及其事件處理
目前只學(xué)到一招,為button等控件增加click的監(jiān)聽。首先我們的activity類需要實(shí)現(xiàn)OnClickListener接口。并實(shí)現(xiàn)接口的onClick方法。并為button加上相應(yīng)的setOnClickListener(this)方法。
3.圖形和動(dòng)畫
自定義圖形,要新建activity 繼承自View ,并實(shí)現(xiàn)View的onDraw(Canvas canvas)方法。具體的繪圖是用canvas實(shí)現(xiàn)的。最后我們可以將實(shí)現(xiàn)的View直接拖到相應(yīng)的布局中。那么在自定義視圖中如何實(shí)現(xiàn)自定義事件呢?(這里先留一個(gè)伏筆,后面我們遇到會(huì)解決這個(gè)問題)
繪制已經(jīng)存在的圖片,我們用bitmap方法實(shí)現(xiàn)。先新建一個(gè)bitmap,然后用canvas.drawBitmap()系列的方法實(shí)現(xiàn)。、
安卓主要有兩種類型的動(dòng)畫,一種是漸變動(dòng)畫(圖像變換),一種是幀動(dòng)畫(順序播放動(dòng)畫幀),漸變動(dòng)畫有4中類型,alpha透明度,scale尺寸伸縮,translate位置變化,rotate旋轉(zhuǎn)。使用漸變動(dòng)畫的時(shí)候,按如下步驟:
1、在res/drawable-mdpi文件夾下放一個(gè)圖片img
2、res目錄下建立一個(gè)anim文件夾
3、新建一個(gè)myanim.xml文件
4、編寫漸變效果。這個(gè)要看各個(gè)動(dòng)畫的規(guī)范。
<?xml version="1.0" encoding="utf-8"?><!-- XML的版本以及編碼方式 --> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alphaandroid:fromAlpha="0.1" android:toAlpha="1.0" android:duration="8000" /> <!-- 透明度的變換 --><scaleandroid:interpolator= "@android:anim/accelerate_decelerate_interpolator" android:fromXScale="0.0" android:toXScale="1.4" android:fromYScale="0.0" android:toYScale="1.4" android:pivotX="50%" android:pivotY="50%"android:fillAfter="false" android:duration="10000"/> <!-- 尺寸的變換 --><translateandroid:fromXDelta="30" android:toXDelta="0" android:fromYDelta="30"android:toYDelta="50" android:duration="10000" /> <!-- 尺位置的變換 --><rotateandroid:interpolator="@android:anim/accelerate_decelerate_interpolator" android:fromDegrees="0" android:toDegrees="+350" android:pivotX="50%" android:pivotY="50%"android:duration="10000"/> <!-- 旋轉(zhuǎn)變換 --> </set>
5、在布局中加入ImageView,
6、修改java文件,加載一個(gè)動(dòng)畫 myAnimation = AnimationUtils.loadAnimation(this,R.anim.myAnimation);加載容器ImageView = ? ;開始動(dòng)畫myAnimation.startAnimation(myAnimation);
4.多媒體開發(fā)
音頻:音頻有兩種,SoundPool適合短促的時(shí)間要求較高,MediaPlayer適合長但是時(shí)間要求不高。soundPool是異步調(diào)用的,初始化和播放是兩個(gè)線程。而mediaplayer同步的。兩種initSound的方法不同。mediaPlayer = MediaPlayer.create(this,R.raw.sound);
soundPool = new SoundPool(4,AudioManager.STREAM_MUSIC,100));
soundPoolMap = new HashMap<Integer,Integer>);
soundPoolMap.put(1,soundPool.load(this,R.raw.sound,1));
播放的方法也不同,對于mediaPlayer,我們先判斷isPlaying的狀態(tài),然后調(diào)用mediaPlayer.start();播放即可。而對于soundPool,我們需要調(diào)用soundPool.play(soundPoolMap.get(sound),volume,volume,1,loop,1f));的方法進(jìn)行播放。
視頻:這個(gè)地方視頻一直加不進(jìn)去視頻(用的surfaceView)具體的開發(fā),在今后如果遇到需要重新學(xué)習(xí)。
照相功能:就是利用camera的功能。這里也先跳過這部分的學(xué)習(xí)。
ok,第二章學(xué)習(xí)到此結(jié)束。
轉(zhuǎn)載于:https://www.cnblogs.com/snail-tomorrow/archive/2012/07/21/2602149.html
總結(jié)
以上是生活随笔為你收集整理的第二章:Android游戏开发之前台渲染的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Top-down与Bottom-up
- 下一篇: Android开发环境准备和常用命令总结