这两天写了一个Android上的Sample,了解了Android上开发Activity的一些基础的东西。
GuessFace这个应用是一个纯本地应用,在屏幕上显示4*4的图片,点击打开图片,如果和前一张图片匹配, 则就称之为完成了一对匹配,两张图片保持打开;否则试图匹配失败,关闭前一张图片,并将这次的图片设置为“前一张图片”。
先零碎的记录一下开发过程中遇到的问题:
1.布局xml里使用<Button>...</Button>的格式不能通过,得采用<Button .../>。
2.不能再onCreate外面使用findViewById。
原因是还没有setContentView(R.layout.main)!典型的不求甚解!
3.使用图片资源不需要后缀。
想到的未去研究的问题:
1.嵌套的Layout,如在一个TableLayout里的某一行使用LinearLayout。
2.调试程序时候的LogCat工具。
3.使用DroidDraw设计UI。
4.关于Android和java的关系:
java被设计为一个虚拟机平台,可以认为java平台的系统调用就是java提供的各种API,那儿Android提供了什么?功能库,框架?
记录一些和java语法有关的:
1.for-each语法
for(Button button : buttons) {
button = (Button)findViewById(...);
}
据说这种方法会比普通的循环遍历快(自己试验了,的确是快1/3左右,JAVA内部做了相应的优化吧),但是如果追求这样子的速度改进的话,请用C/C++。这种语法只是,呃,少敲几个字符。
并没有把buttons的每一项都赋值为find到的。因为赋值的使用重新定义了button的引用。
2.数组
Face[] faces = new Face[16]
并没有像C++一样,对数组的每一个元素调用Face的构造函数,faces里的现在都是null,不能被使用。需要一个循环来new元素。
3.在Android的例程里大量充斥着匿名局部对象。我没写过多少JAVA程序,但是这一个特性的确带来灵活性,随用随写?