Android 开发笔记之界面开发

长平狐 发布于 2012/10/08 15:24
阅读 100
收藏 0

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


原文链接:http://blog.csdn.net/nuptboyzhb/article/details/7831012
加载中
返回顶部
顶部