Android 开发笔记之界面开发
相关代码下载:http://download.csdn.net/detail/nuptboyzhb/4476822
1. android开发的帮助文档
我的androidSDK安装路径是D:\android-sdk-windows,因此,帮助文档的路径在D:\android-sdk-windows\docs\index.html,用浏览器打开即可。这是官方的帮助文档。
2. android界面设计工具
android的界面设计工具是别人开发的一个根据用户的设计界面自动产生.xml文件的一个可视化软件。工具下载地址为:http://code.google.com/p/droiddraw/downloads/list
3. android目录解析
src目录下有几层文件夹,对应的是创建工程是填入的包名,最里边的java文件就是项目的源文件
gen目录下也是和src目录下一样的几个文件夹,最里边放的是R.java文件,这个R.java文件是系统自动生成的,用来存放全局资源文件的ID。一般不允许修改。从代码可以看到,R里面定义了几个内部类,对应着几种资源类型。R.java文件时系统自动更新的。
android.jar就是android项目需要要引用的工具包,大部分开发用的工具都被封装在里面了。
assets文件夹用来存放资源文件,存放到里面的文件,都会被打包到应用程序里面。
bin文件夹是运行以后生成的,里面包含生成的可执行文件等。程序运行以前是没有这个文件夹的。
res 文件夹里面放的是程序的资源文件,里面的三个drawable***文件夹放的是在不同分辨率下的图片文件。
layout目录下放的是布局文件,都是 xml格式的。
values存放字符串,颜色,数组等常量数据。可以任意命名,但是通常命名:color.xml、strings.xml、 array.xml、styles.xml等。
androidmanifest.xml文件,这个是系统控制文件,每个android里面都有这个文件,里面定义应用程序名称、图标、资源、Activity权限、注册Activity、注册服务、广播等。
可以参考:http://www.cnblogs.com/salam/archive/2010/09/22/1833080.html
http://blog.csdn.net/shagoo/article/details/7485958
4. android重要的包
android.app :提供高层的程序模型、提供基本的运行环境
android.content :包含各种的对设备上的数据进行访问和发布的类
android.database :通过内容提供者浏览和操作数据库
android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
android.location :定位和相关服务的类
android.media :提供一些类管理多种音频、视频的媒体接口
android.net :提供帮助网络访问的类,超过通常的java.net.* 接口
android.os :提供了系统服务、消息传输、IPC 机制
android.opengl :提供OpenGL 的工具
android.provider :提供类访问Android 的内容提供者
android.telephony :提供与拨打电话相关的API 交互
android.view :提供基础的用户界面接口框架
android.util :涉及工具性的方法,例如时间日期的操作
android.webkit :默认浏览器操作接口
android.widget :包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用
5. android界面开发详解
5.1Activity
1.Activity的创建
a.引入相应的android的开发包
importandroid.app.Activity;
import android.os.Bundle;
b.新建一个由Activity派生的类,重写其onCreate函数,设置其对应的.xml布局文件
publicclassMyActivityextends Activity {
/** Called when the activity is firstcreated. */
@Override
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//调用父类的onCreate
//设置该Activity对应的.xml文件
setContentView(R.layout.XXXXXX);
setTitle("现在是在Activity2里");//设置标题
//……
}
}
C.在AndroidManifest.xml文件中声明该Activity的名称信息。
<manifest ... >
<application ... >
<activityandroid:name=".MyActivity"></activity>
...
</application ... >
...
</manifest >
如果该Activity是主Activity,则AndroidManifest.xml中声明如下:
<activity android:name=".MyActivity "
android:label="@string/app_name">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<category
android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
注意:setContentView(R.layout.XXXXXX);语句的含义。该语句是将XXXXXX.xml文件的布局文件与当前的Activity绑定。也即是XXXXXX.xml文件所描述的布局信息,对应于当前的Activity.
2.Activity的跳转
我们要完成的功能是,点击按钮,由当前的Activity跳转到另外一个Activity。
a.引入相应的android的开发包
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
b.在当前Activity中新建一个Button和一个OnClickListener
OnClickListenerlistener1 =null;//声明
Button button1;//声明
在onCreate函数中,创建声明的listener1
listener1 =new OnClickListener() {
publicvoid onClick(View v) {
Intent intent1 =new Intent(ActivityMain.this,
AnotherActivity.class);
intent1.putExtra("activityMain","数据来自
activityMain");
startActivityForResult(intent1,REQUEST_CODE);
}
};
上述启动方式只是其中的一种(在被启动的Activity中,可以通过键值“activityMain”获得字符串"数据来自activityMain")比如下面的启动方式非常简单,只实现跳转。
//Intent intent = new Intent(this, AnotherActivity.class);
//startActivity(intent);
然后在onCreate函数中设置该Activity的布局文件
setContentView(R.layout.main);
在main.xml文件中添加按钮的布局信息,代码如下:
<Buttonandroid:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="这是button1"/>
然后在onCreate函数中将新建的button1对象与布局文件main.xml的按钮信息相关联
button1 = (Button) findViewById(R.id.button1);
将按钮与点击的事件响应关联
button1.setOnClickListener(listener1);
3.Activity之间的数据传递
Activity1 向 Activity2跳转并传递数据
在Activity1的相应位置添加代码如下:
Intent intent=new Intent(Activity1.this,Activity2.class);//新建一个Intent对象
Bundle bl=new Bundle();//新建一个Bundle对象
String s="要传递的数据";//要传递的字符串信息
bl.putString("key_text", s);//向bl中添加信息,"key_text"是信息的标识
intent.putExtras(bl);//将bl与intent绑定(添加进去)
startActivity(intent);//启动Activity2
在Activity2的相应位置,获得传递的信息
Bundle bundle=getIntent().getExtras();
String text=bundle.getString("text");
text字符串里及保存了传递过来的字符串信息"要传递的数据";
5.2组件与布局
5.2.1组件的创建流程
Android中的组件依附于Activity,依附于与Activity相应的.xml文件。
组件的声明是在Activity中实现的,如5.1中讲到的,Button button1;而组件的位置、相对整个Activity的布局等属性信息都是由xml文件管理。在程序中,通过调用findViewById函数,将java(android)程序中的组件与xml文件中描述的组件相关联。调用组件对象的各种方法,完成相应的功能。同时要注意不同组件的消息响应处理函数(Listener);
5.2.2界面的设计以及xml工具的使用
自动产生xml文件的工具下载地址是:http://code.google.com/p/droiddraw/downloads/list
我们可以先用droiddraw工具设计好Activity的布局,然后自动生成对用的xml文件,然后粘贴到Activity的xml文件中。我们只需要在java程序中新建这些组件,然后用findViewById函数关联即可。droiddraw教程可以参看博客:http://blog.csdn.net/archfree/article/details/6001871
5.2.3 widget(窗体小部件)介绍
所在的android包:importandroid.widget.*;
Widget包含的组件很多,如:按钮、文本框、编辑框、复选框、单选按钮、下拉列表等等。具体用法可以查api文档。示例代码中也有。
5.2.4strings.xml文件的管理与应用
1.在strings.xml中声明字符串,格式如下:
<string name="school_name">南京邮电大学</string>
2.在其他.xml中使用“南京邮电大写”这个字符串:
android:text="@string/school_name"
3.在java文件中使用“南京邮电大写”这个字符串:
R.string.school_name
好处:当我们想要将程序中显示“南京邮电大学”的中文翻译成英文时,我们只需要将strings.xml中的
<string name="school_name">南京邮电大学</string>
改为:
<string name="school_name">NUPT</string>
即可。这时,程序中所有引用school_name的地方都变化了。方便了程序的管理。
郑海波 2012-08-04 转载请声明:http://blog.csdn.net/nuptboyzhb/article/details/7831012
http://blog.csdn.net/shagoo/article/details/7485958