暑假的通信项目是一个Android的联网小游戏,其实我在今年年初的时候就装了SDK,想着新学期伊始,要学点新东西,做个简单的小应用回家孝敬老爹,结果一直拖到通信的项目需要Android了,才开始学,不过,幸好我在见老爹之前可以用Android作出个小东西,否则真是没脸问老爹要大三的生活费。这个经历让我想起了胡某人常说的一句话,我把它美化一下:我们是为了做而学。
Android是基于Java的,我暂且就这样认为,因为在eclipse中装一个插件,就开始了Android之旅。

  我们原来写JAVA的代码的时候,都将布局,对象的声明,方法等写到一起的,但是Android中,有一些不一样。
(1)Android的布局有:
FrameLayout (框架布局),
LinearLayout (线性布局)
AbsoluteLayout(绝对布局)
RelativeLayout(相对布局)
TableLayout(表格布局)
布局的代码使用xml语言单独写出来,作为资源,放在res目录的layout文件夹下。xml语言是可扩展的标记语言,标签是成对的~
举个栗子~~~一个有按钮盒图片的界面的布局:
<!--相对布局--><!---线性布局可以嵌套-><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="bottom"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".FristActivity"     android:background="@drawable/back"></RelativeLayout><!--线性布局 vertical为垂直,horizontal为水平--><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ></LinearLayout>

再举一个栗子~~
<!--图片按钮控件--><ImageButton        android:id="@+id/imageButton1"        android:layout_width="350dp"        android:layout_height="50dp"        android:layout_alignParentBottom="true"        android:layout_centerHorizontal="true"        android:layout_marginBottom="20dp"        android:src="@drawable/a" />

其中,我用到的是@+id/imageButtom1表示给这个imageButton对象一个id---imageButtom1,可以唯一标示这个对象,而@drawable/a则表示可以引用了a文件。
大致是这样吧,我是这样理解的,可能存在错误。。。。。呵呵

再再举一个栗子~~
<!--文本显示框控件--><TextView        android:id="@+id/loginpwd"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignBaseline="@+id/editText1"        android:layout_alignBottom="@+id/editText1"        android:layout_alignLeft="@+id/loginname"        android:text="@string/loginpwd"          android:textSize="25sp"    />

其中:@string/loginpwd表示:使用了名字为loginpwd的字符串,这样就要求之前在String.xml文件中,对名字为loginpwd的字符串进行声明,如:
<string name="loginpwd">密  码:</string>

这样的话:
android:text="@string/loginpwd"android:text="密  码:"

这两行代码是等价的。
By the way~~ 布局以及空间可以拖拽生成,然后再.xml文件中修改属性


(2)在Android的工程目录下面会发现有一个gen目录,下面有一个和src中同名的包,包里面有一个R.java文件,这个R文件是可读文件,里面是资源的索引,我们在使用布局上的控件时,都要通过R.id.XX来实现,所以说在上一步,给每个控件一个唯一的标示符id是很重要的。


(3)每一个Android都有很多个Activity,Activity就相当于一个界面,但只有一个主Activity,它的确定是在AndroidManifest.xml文件下,在创建其他Activity时,也要在里面声明。它要继承Activity类,然后我们的逻辑代码就在里面写,语法基本和java没区别。
public class FristActivity extends Activity {/** * Activity的入口 */    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_frist);        ImageButton bu_play = (ImageButton)findViewById(R.id.imageButton1);                ButtonOnCL bl = new ButtonOnCL();        bu_play.setOnClickListener(bl);    }     //按钮监听类    class ButtonOnCL implements OnClickListener{    //View 所有控件的父类  有两个包,引入是的时候注意不要引错了public void onClick(View v) {//v.getId()是得到控件的id编号int a = v.getId();if(a==0x7f080000){//信使~~~Intent intent = new Intent();//当前界面,跳转界面intent.setClass(FristActivity.this, SecondActivity.class);//实现跳转startActivity(intent);//跳转后关闭当前界面finish();}}    }}
其中:
①v.getId()得到的是R文件中每一个id对应的十六进制数,并由此进行判断
②Intent类是Android中的一个信使,其实就是起到一个链接的作用,把各个控件连在一起。。。暂时我只能理解到这里。。。。呵呵呵呵

以上就是一个简单的Android但是包含了界面,监听,跳转的我的第一个Android程序的一些小总结,同时我也在测试时也遇到下面这几个错误,我想初学者都应该会遇到吧:
1.代码的版本高于虚拟机:
代码的版本一定要低于虚拟机,你想4.0.1版本的Android可以安装2.3.3的应用,但是2.3.3的手机却不能安装4.0.1的应用就是这个道理
2.Fatal exception:main 空指针异常 果真是对我不离不弃的错误,开始还翻译成了“主函数里犯了致命的错误”,都吓死我了。。。
   创建的是ImageButton对象,但是在使用时用了Button对象
3.error opening trace file: No such file or directory (2)
   AVD和代码版本不一致导致的
4.当AVD无缘无故的,也不报错,也不反映,也不跑程序,要么就是电脑累了反应慢了,要么就是AVD太傲娇了,所以把它删了,新建一个就好了。当然,这是没有找到根本原因的下策解决方法,用我们数据库杨老师的话就是,这是一种逃避问题的表现,so,如果你恰好看到这篇有点小弱的博客,有恰好不行的有了一个傲娇的AVD,欢迎交流~~~

更多相关文章

  1. Android shap 控件美化
  2. 13、从头学Android之RelativeLayout相对布局
  3. Android第十八课 VS源码文件导入Android工程 中文乱码
  4. [Android] ListView (普通列表控件) 的基本使用方法
  5. Android 主题之安装的APK主题文件
  6. android中图片的三级cache策略(内存、文件、网络)之三:文件缓存策略
  7. 自定义控件及效果

随机推荐

  1. python3生成10个成绩列表,求其平均分
  2. python使用urlopen需要导入什么库
  3. Python -在文本文件中添加日期戳
  4. Django反向url与参数到基于类的视图
  5. Python爬虫-尝试使用人工和OCR处理验证码
  6. leet240. 搜索二维矩阵 II
  7. re表达式中单引号内的双引号(python)[dupli
  8. Python基础 条件判断和循环
  9. Python爬虫之post请求
  10. Python3 基本数据类型