您的位置:首页 > 移动开发 > Android开发

第二章:Android游戏开发之前台渲染

2012-07-21 11:57 232 查看
1.布局管理

  安卓的四种布局模式:

  线性布局

  表格布局

  相对布局

  单帧布局

  坐标布局

目前安卓建议不要用坐标布局,容易因屏幕尺寸或者其他问题产生问题。这几种布局我没有展开说,是因为就是拖拽就可以实现,目前没看到什么好展开讲得东西。

2.常用控件及其事件处理

  目前只学到一招,为button等控件增加click的监听。首先我们的activity类需要实现OnClickListener接口。并实现接口的onClick方法。并为button加上相应的setOnClickListener(this)方法。

3.图形和动画

  自定义图形,要新建activity 继承自View ,并实现View的onDraw(Canvas canvas)方法。具体的绘图是用canvas实现的。最后我们可以将实现的View直接拖到相应的布局中。那么在自定义视图中如何实现自定义事件呢?(这里先留一个伏笔,后面我们遇到会解决这个问题)

  绘制已经存在的图片,我们用bitmap方法实现。先新建一个bitmap,然后用canvas.drawBitmap()系列的方法实现。、

  安卓主要有两种类型的动画,一种是渐变动画(图像变换),一种是帧动画(顺序播放动画帧),渐变动画有4中类型,alpha透明度,scale尺寸伸缩,translate位置变化,rotate旋转。使用渐变动画的时候,按如下步骤:

  1、在res/drawable-mdpi文件夹下放一个图片img

  2、res目录下建立一个anim文件夹

  3、新建一个myanim.xml文件

  4、编写渐变效果。这个要看各个动画的规范。

  

<?xml version="1.0" encoding="utf-8"?><!-- XML的版本以及编码方式 -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="8000"
/> <!-- 透明度的变换 -->
<scale
android: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"
/> <!-- 尺寸的变换 -->
<translate
android:fromXDelta="30"
android:toXDelta="0"
android:fromYDelta="30"
android:toYDelta="50"
android:duration="10000"
/> <!-- 尺位置的变换 -->
<rotate
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0"
android:toDegrees="+350"
android:pivotX="50%"
android:pivotY="50%"
android:duration="10000"
/> <!-- 旋转变换 -->
</set>


  5、在布局中加入ImageView,

  6、修改java文件,加载一个动画 myAnimation = AnimationUtils.loadAnimation(this,R.anim.myAnimation);加载容器ImageView = ? ;开始动画myAnimation.startAnimation(myAnimation);

4.多媒体开发

  音频:音频有两种,SoundPool适合短促的时间要求较高,MediaPlayer适合长但是时间要求不高。soundPool是异步调用的,初始化和播放是两个线程。而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的状态,然后调用mediaPlayer.start();播放即可。而对于soundPool,我们需要调用soundPool.play(soundPoolMap.get(sound),volume,volume,1,loop,1f));的方法进行播放。

  视频:这个地方视频一直加不进去视频(用的surfaceView)具体的开发,在今后如果遇到需要重新学习。

  照相功能:就是利用camera的功能。这里也先跳过这部分的学习。

  ok,第二章学习到此结束。

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: