(Growing)新手小白对自己暑假一…

放假一个多月了,今天来给自己总结下这一个月来的学习情况,其中作为一个新手小白,肯定存在着许多错误不足的地方,以后发现错误的时候会在此的基础上加以更正,现在在这里写的就是一个小白的小小总结吧,希望自己以后能不断得到进步,能力不断得到提高。
这一个月来我是伴着《Android 2.0 游戏开发实战宝典》来实习的,因为在期末考完试之前就有这个想法了,毕竟自己什么都不懂,而且在网上看大家对于这本书的评价还不错,所以就买来了。果然不负我所望,这本书的内容确实不错,下面就一点点来说我对于接触这本书的一点点感受吧。
这本书的开始讲的是一些android一些比较基本的内容,其中包括用户界面,通讯,还有数据存储等。其中我较为深刻的是在xml下自定义一个布局,这是我以前很少接触到的,以前的都是自己直接在xml下定义自己所用的控件,其实这个跟系统的差不多,就是自己自定义的而已,如在xml下自定义的:
<love.fs.MyView
  android:id="@+id/myView"
  android:layout_width="fill_parent"
  android:layout_width="fill_parent" />
这里随便提一下,自定义的动画也是这样的,通过自定义一个xml, 然后通过控件的startAnmimatioin实现播放。
SoundPool and MediaPlayer
这两个都是实现多媒体的播放,区别在于SoundPool适合播放要求速度比较快的情况,如游戏的碰撞声等,而且可以实现多个音频同时播放,而MediaPlayer反应稍慢,而且每次只能播放一个音频,但是可以播放较大的音频文件,SoundPool貌似只能播放较小的音频文件。

Camera图像摄取
以前没基础过相机的demo,这次看了书之后,发现也就是调用Camera.open方法和setPreviewDisplay、startPreview()进行外界图像的摄取。

Handler内部通讯
通过sendMessage方法进行发送信息,用handMessage方法进行获取信息

BroadCast广播
Intent对象setAction("字符串")和IntentFilter.addActioni("字符串"),这两个字符串的内容必须一致,而且不要忘了addAction()方法之后还要通过registerReceiver()方法注册(也可以在 Androidmanifest中注册 ),这样当程序通过sendBroast("这里写德尔是intent对象")就可以通过刚才注册的类来接受广播了,处理的方法是onReceive()方法。

文件写入和读取
通过opendFileOutputStream()方法和openFileinputStream()方法来得到一个文件输入输出流对象,怎么写入和读取就不说了,要说的是当你想要在屏幕上显示你写入的内容时,要记得EncodingUtils.getString()方法将byte数组转换成执行格式的字符串,不然会显示乱码。

得到res/raw/和res/assets数据
getResources().openRawResources()和 getResources().getAssets.open(),返回值都是输入流对象。

ContentProvider使用
下面是一段获取联系人的代码:
        ContentResolver resolver = getContentResolver(); //获取ContentResolver对象
        Cursor cursor = resolver.query(contactUri, columns, null, null, null); //调用方法查询
        int idIndex = cursor.getColumnIndex(People._ID); //获得_ID字段的列索引
        int nameIndex = cursor.getColumnIndex(People.NAME); //获得NAME字段的列索引
        for(cursor.moveToFirst();(!cursor.isAfterLast());cursor.moveToNext()){ //遍历Cursor,提取数据
              //查询联系人
        }
至于是什么意思,就不必说了吧。有注释了。

Preference存储和读取
通过getPreferces()方法获得一个对象,调用对象的getString方法就可以得到所存储的内容了。而想要存取内容时,可以通过以下代码:
SharedPreferences.Editor editor = sp.edit(); //获得SharedPreferences的Editor对象
editor.putString(EDIT_TEXT_KEY, String.valueOf("字符串"); //修改数据
editor.commit();
这里要说的是必须调用commit方法,否则内容就没有保存。

传感器
通过(SensorManager)getSystemService(SENSOR_SERVICE)得到一个SensorManager对象,在通过对象调用registerListener()注册监听器,通过对象调用unregisterListener()取消监听,响应函数有onAccuracyChanged()和onSensorChanged()函数。

Socket套接字
服务器端创建ServerSocket对象绑定监听端口,调用accept()等待用户连接,客户端在绑定了和服务器端一样的端口之后,再和DataOutputStream关联,调用writeUTF()方法向服务器端发送信息。

HTTP网络编程
书中源代码如下:
URL myURL = new URL("http://www.google.cn/");//初始化URL
ucon = myURL.openConnection();//打开连接
bin = new BufferedInputStream(ucon.getInputStream());//通过连接得到输入流
int current = 0;
bab = new ByteArrayBuffer(1000);
while((current=bin.read()) != -1){
bab.append((char)current);//将收到的信息添加到ByteArrayBuffer中
}
其实本人小白觉得,HTTP网络连接的步骤应该都是差不多,首先是初始化URL,打开连接,得到输入流,显示接收到的信息。至于说法是否有问题,自己会在以后学习的过程中进行更正。

GoogleMap
要进行谷歌地图的开发,就必须先得到key,至于怎么得到,百度一下就有了,我在学习的过程中郁闷的是在申请过程中被墙了,没办法,天朝嘛,后来同学给了我一个代理,搞定!网址为 https://www.zxproxy.com/index.php,在这里输上谷歌那个网站进去就可以了。要说明的是,通过(LocationManager)getSystemService(Context.LOCATION_SERVICE)得到一个LocationManager对象,在调用requestLocationUpdates()就可以根据位置的改变而进行更新了。但是,我是被气死了,我的模拟器可以显示地图,当我放在手机测试的时候连地图都显示不了,弄了好久都没有解决,呵呵,这个问题还是留着以后再解决吧。

游戏开发
我其实买这本书的目的就是冲着游戏来的,本人是一个绝对小白, 对着书本的思路来做,甚至对着代码大,还是出现了不少问题,对于自己怎么抓狂就不想再说了。谁能告诉我如何能一步步地进行游戏开发啊,麻烦哪位大神能告诉我吗?好了,不扯淡了,还是先说说小白对于初接触游戏的感受吧。
小白认为:一个游戏由以下几部分组成:游戏欢迎界面(包括选择菜单等),游戏加载界面,游戏界面。在通过抄的过程中,发现了游戏是一步步来做的,比如先做游戏界面,做完了游戏界面再做加载界面,这个还真的急不得,不然思路就完全乱了。还有那个转向另一个界面应该用的是setContentView()函数实现的,反正我看了几个都是通过这个函数来通过过渡到另一个界面的。还有的就是,类的封装性,对于这点我影响比较深刻,比如足球的游戏吧,足球类包括足球的运动,足球的碰撞,尽可能足球这个类就封装了足球本身应有的特性。至于碰撞,还是那足球来说吧,既然足球已经封装了球与队员的碰撞方法,那就不应该在玩家或者电脑再来封装碰撞方法,以免造成代码累赘。

好了,小白对于游戏接触也没几个,也没什么感受可说的了,这个自己以后在学习的过程中会继续进行总结的,最后,希望自己在以后的学习中能不断进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值