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

更多相关文章

  1. Android(安卓)四大组件(总结)
  2. android 在新建短信时,加入名称为","(英文逗号)的联系人时,应用崩
  3. android 快速移动sdCard的文件夹
  4. Android用户界面 UI组件--自动提示输入框 AutoCompleteTextView
  5. Android之SharedPreferences详解
  6. React Native调用Android原生组件
  7. Android(安卓)Studio module里面放switch语句报错 R文件找不到
  8. Android(安卓)Databinding(一)
  9. NPM 和webpack 的基础使用

随机推荐

  1. 详解MySQL中事务隔离级别的实现原理
  2. MySQL的主键命名策略相关
  3. MySQL配置了双主,是如何避免出现数据回环
  4. win10下mysql 8.0.23 安装配置方法图文教
  5. deepin20.1系统安装MySQL8.0.23(超详细的
  6. MySQL修改字符集的实战教程
  7. MySQL 一则慢日志监控误报的问题分析与解
  8. MySQL慢查询日志的作用和开启
  9. Centos7下安装MySQL8.0.23的步骤(小白入
  10. 几个MySQL高频面试题的解答