Android 学习开发指南.docx

上传人:b****8 文档编号:28412419 上传时间:2023-07-13 格式:DOCX 页数:21 大小:521.99KB
下载 相关 举报
Android 学习开发指南.docx_第1页
第1页 / 共21页
Android 学习开发指南.docx_第2页
第2页 / 共21页
Android 学习开发指南.docx_第3页
第3页 / 共21页
Android 学习开发指南.docx_第4页
第4页 / 共21页
Android 学习开发指南.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

Android 学习开发指南.docx

《Android 学习开发指南.docx》由会员分享,可在线阅读,更多相关《Android 学习开发指南.docx(21页珍藏版)》请在冰豆网上搜索。

Android 学习开发指南.docx

Android学习开发指南

Android开发

-Eclipse的工作目录

⏹打开Eclipse的时候首先弹出的对话框

⏹通过Workspace里面的路径,可以找到Eclipse项目存放之处

-Eclipse的导入项目

⏹File–>Import–>

-Eclipse的输出项目

⏹第一种

◆File->Export->

⏹第二种

◆从PackageExplorer选中项目名->单击鼠标右键选择Copy->鼠标右键粘贴到其他存放之处

-Eclipse快捷键

⏹Alt+“/”自动匹配符合的关键字

-Android中.XML文件首布局属性必须有

-标签定义规范

⏹打完标签的开头,立即补上结尾

⏹布局模式必须以<布局关键字>为开头,为结尾

◆例

◆例

◆例

⏹独立控件的可以有两种方式结尾

◆1.

◆2.

-黄色的波浪线

⏹可以运行,但android或者其他程序语言不推荐这么写代码

⏹在.java源程序中变量或者方法未使用

-红色的波浪线

⏹代码错误提示,需要更改正确

-main.xml与String.xml

⏹String.xml键值对

◆一:

国际化,只需要提供一个string.xml文件,把里面的汉字信息都修改为对应的语言(如,English),再运行程序时,android操作系统会根据用户手机的语言环境和国家来自动选择相应的string.xml文件,这时手机界面就会显示出英文。

这样做国际化非常的方便。

◆二:

为了减少应用的体积,降低数据的冗余。

假设在应用中要使用"我们一直在努力"这段文字10000次,如果在每次使用时直接写上这几个字,这样下来程序中将有70000个字,这70000个字占136KB的空间。

而由于手机的资源有限,其CPU的处理能力及内存是非常有限的,136KB对手机内存来说是个不小的空间,我们在做手机应用是一定要记住“能省内存就省内存”。

而如果将这几个字定义在string.xml中,在每次使用到的地方通过Resources类来引用该文字,只占用到了14B,因此对降低应用体积效果是非常有效地.当然我们可能在开发时可能并不会用到这么多的文字信息,但是,作为手机应用开发人员,我们一定要养成良好的编程习惯。

◆获取string.xml文件里面的值有几个不同的地方

●1.在AndroidManifest.xml与layout等xml文件里:

⏹android:

text="@string/resource_name"

●2.在activity里:

●方法一:

⏹this.getString(R.string.resource_name);

⏹方法二:

⏹getResources().getString(R.string.resource_name);

●3.在其他java文件(必须有Context或pplication)

⏹方法一:

⏹context.getString(R.string.resource_name);

⏹方法二:

⏹application.getString(R.string.resource_name);

◆下图介绍几种常见的资源XML文件

-布局模式

⏹LinearLayout线性布局

⏹Android:

orientation=””定义控件布局的方向[ˌɔ:

rienˈteiʃən]

◆Vertical[ˈvə:

tikəl]垂直方向

◆Horizontal[ˌhɔriˈzɔntəl]水平方向

⏹Android:

layout_width=””指定控件的宽

⏹Android:

layout_height=””指定空间的高

◆Fill_parent

◆Wrap_content

◆Match_parent

●在android2.2之后fill_parent改成match_parent

⏹Android:

layout_weight=””权重

◆值越小优先级越大

●在layout_width设置为fill_parent的时候,layout_weight所代表的是你的控件要优先尽可能的大,但这个大是有限度的,即fill_parent

●在layout_width设置为wrap_content的时候,layout_weight所代表的是你的控件要优先尽可能的小,但这个小是有限度的,即wrap_content

⏹TableLayout表格布局

◆内容介绍

●TableLayout,表格布局采用行列形式管理UI组件,TableLayout不需要明确地声明有多少行和列,而是通过添加TableRow、其它组件来控制表格的行数、列数。

每次向TableLayout添加一个TableRow,就是在向表格添加一行,TableRow也是容器,可以向TableRow中添加组件,每添加一个组件,即是添加一列。

如果直接向TableLayout添加组件,则认为这个组件占用一行。

表格布局中列的宽度即是每一列中最宽的组件的宽度。

 

◆属性

●android:

collapseColumns[kəˈlæpsˈkɔləm]隐藏指定列

●android:

stretchColumns[stretʃˈkɔləm]自动伸展指定列

●android:

shrinkColumns[ʃriŋkˈkɔləm]自动收缩指定列

⏹里面的控件数决定列数

◆控件的width默认为fill_parent,可更改

控件的height默认为wrap_content,可以更改

◆Android:

layout_colunmn=“1”将控件放在标号为1的列上,标号是从0开始的

◆Android:

layout_span表示一个控件占几列空间

◆在tableLayout里面不可以添加另外的布局模式

<控件/>

-

-

-1.Main.xml添加按钮控件

Android:

id="@+id/btn"

Android:

layout_weight="fill_parent"

android:

layout_height="wrap_content"

android:

text="I’maButton."

/>

-2.如何从.java中获取Button的资源

Buttonbtn=(Button)findViewById(R.id.btn);

-3.如何在.java中添加按钮的监听事件

方法一:

btn.setOnClickListener(newView.OnClickListener(){

@Override

publicvoidonClick(Viewv){

//Toast是Android中用来显示显示信息的一种机制,Toast没有焦点,而且Toast显示的时间有限,过一定的时间就会自动消失。

Toast.makeText(Listener_DemoActivity.this,"你好!

",Toast.LENGTH_SHORT);

}

});

方法二:

btn.setOnClickListener(newbtn_listener());

privateclassbtn_listenerimplementsOnClickListener{

@Override

publicvoidonClick(Viewv){

//TODOAuto-generatedmethodstub

Toast.makeText(Listener_DemoActivity.this,"你好!

",Toast.LENGTH_SHORT);

}

}

-RelativeLayout相对布局

⏹一句话概括

◆一个控件的布局位置,它决定于它和周围控件的关系

⏹相对布局与其他布局的区别

◆线性布局(LinearLayout):

children排列成一行多列或者一列多行的形式,应该是应用程序中最常用的布局方式,它提供了控件水平或者垂直排列的模型,同时我们可通过设置子控件的weight布局参数控制各个控件在布局中的相对大小。

◆TableLayout:

children按照行列的排序,类似于html的table;模型以行列的形式管理子控件,每一行为一个TableRow的对象,也可为一个View的对象。

TableRow可添加子控件,每添加一个子控件为一列。

◆相对布局(RelativeLayout):

children的位置是与它周围的控件相关的或者和他们的parent位置相关,参照控件可以是父控件,也可以是其他子控件,但被参照的控件必须要在参照它的控件之前定义。

相对布局模型所涉及的属性设置比较多,但并不复杂。

⏹常见属性

//相对于给定ID控件

android:

layout_above将该控件的底部置于给定ID的控件之上;

android:

layout_below将该控件的底部置于给定ID的控件之下;

android:

layout_toLeftOf将该控件的右边缘与给定ID的控件左边缘对齐;

android:

layout_toRightOf将该控件的左边缘与给定ID的控件右边缘对齐;

android:

layout_alignBaseline将该控件的baseline与给定ID的baseline对齐;

android:

layout_alignTop将该控件的顶部边缘与给定ID的顶部边缘对齐;

android:

layout_alignBottom将该控件的底部边缘与给定ID的底部边缘对齐;

android:

layout_alignLeft将该控件的左边缘与给定ID的左边缘对齐;

android:

layout_alignRight将该控件的右边缘与给定ID的右边缘对齐;

//相对于父组件

android:

layout_alignParentTop如果为true,将该控件的顶部与其父控件的顶部对齐;

android:

layout_alignParentBottom如果为true,将该控件的底部与其父控件的底部对齐;

android:

layout_alignParentLeft如果为true,将该控件的左部与其父控件的左部对齐;

android:

layout_alignParentRight如果为true,将该控件的右部与其父控件的右部对齐;

//居中

android:

layout_centerHorizontal如果为true,将该控件的置于水平居中;

android:

layout_centerVertical如果为true,将该控件的置于垂直居中;

android:

layout_centerInParent如果为true,将该控件的置于父控件的中央;

-FrameLayout单帧布局

⏹ViewGroup将它的子试图元素都放在布局的左上角,并覆盖在前一子控件的上层。

如果绝对布局不指定坐标位置,子试图将会类似于单帧布局那样层叠放置。

-AbsoluteLayout绝对布局

⏹以坐标的方式定位子控件。

⏹设置元素的位置的属性是:

android:

layout_x=”..px(dp)”

android:

layout_y=”..px(dp)”

-资源文件的引用

⏹字符串资源的引用

res/values/strings.xml中的资源引用有3中形式:

在.xml中引用:

@string/string_name

在.java代码中应用:

R.string.string_name

在代码中获取图片:

getResources().getString(R.string.string_name)

或getResources().getText(R.string.string_name)

⏹图片资源的引用

res/drawable中的资源引用有3中形式:

在.xml中引用:

@drawable/image_name

在.java代码中应用:

R.drawable.image_name

在代码中获取图片:

getResources().getDrawable(R.string.drawable_name)

或getResources().openRawResource(R.string.drawable_name)

⏹颜色资源的引用

res/values/colors.xml中的资源引用有3种形式:

在.xml中引用:

@color/color_name

在.java代码中应用:

R.string.color_name

在代码中获取图片:

getResources().getColor(R.string.color_name)

⏹系统资源的引用

Android平台自身提供了一些资源文件,如:

字符串:

android.R.String.httpErrorBadUrl或@android:

string/httpErrorBadUrl

颜色:

android.R.darker_gray或android.graphics.Color.darker或@android:

color/darker_gray

图片:

android.R.drawable.ic_media_pause或@android:

drawable/ic_media_pause

-Intent与Activity

⏹Activity概述

Android中的Activity主要用于构建和用户进行交互的界面应用程序。

一个Android应用程序通常由多个Activity组成。

Activity的主体包括两个主要部分:

一个是Content(data);另外一个是响应用户交互事件的行为。

在Activity中通

过onCreate(Bundle)方法来初始化Activity,通过setContentView(intID)方法来设置UI布局所使用的Layout资源,通过findViewById(intID)方法来获得对应的视图资源。

⏹创建Activity

SuperClassandroid.app.Activity

Alt+Shift+S重载onCreate()

setContentView();

⏹Intent

Intent是一种运行时绑定(runtimebinding)机制,它能在程序运行的过程中连接两个不同的组件,是应用程序之间通信的信鸽。

⏹如何利用Intent进行界面跳转

Intentintent=newIntent();

Intent.setClass(当前类名.this,将要跳转的类名.class);

startActivity(intent);

-类的定义

修饰符class类名{

成员定义;

}

-类的继承

⏹Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。

-类的接口

⏹Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

接口的两种含义:

一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。

前者叫做“Java接口”,后者叫做“接口”。

-

-浅谈Activity的生命周期

-

-当一个Activity01被创建的时候需要调用以下3个方法

⏹Activity01的

◆onCreate()当这个Activity没有调用onDestroy()方法进行销毁的时候,此方法仅会被调用一次

◆onStart()

◆onResume()

-当向另外一个Activity02进行跳转的时候会调用以下方法

⏹之前Activity01的

◆onPause()

⏹当前Activity02的

◆onCreate()

◆onStart()

◆onResume()

⏹之前activity01的

◆onStop()

-当点击Back键让Activity02返回到之前Activity01的时候会调用以下方法

⏹当前Activity02的

◆onPause()

⏹之前Activity01的

◆onRestart()

◆onStart()

◆onResume()

⏹当前Activity02的

◆onStop()

◆onDestroy()

-Menu菜单的创建

⏹1、复写Activity的onCreateOptionsMenu(Menumenu)方法

⏹2、调用menu的add()方法添加菜单项(MenuItem),可以调用MenuItem的setIcon()方法来为菜单设置图标

⏹3、当菜单项()被选择时,我们可以通过覆盖Activity的onOptionsItemSeleted()方法来响应事件

-点击Button,显示Menu

⏹只需再监听事件里加上这句代码

◆openOptionsMenu();

-Menu的案例代码

packagecom.example.menudemo;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.app.Activity;

importandroid.content.Context;

importandroid.util.AttributeSet;

importandroid.view.InflateException;

importandroid.view.LayoutInflater;

importandroid.view.LayoutInflater.Factory;

importandroid.view.Menu;

importandroid.view.MenuItem;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.Toast;

publicclassMenuActivityextendsActivity{

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//获取Button的资源

Buttonbtn=(Button)findViewById(R.id.menubtn);

//给Button绑定监听事件

btn.setOnClickListener(newbtn_menuListener());

}

//按钮事件内容

classbtn_menuListenerimplementsOnClickListener{

@Override

publicvoidonClick(Viewv){

//TODOAuto-generatedmethodstub

//打开菜单

openOptionsMenu();

}

}

//复写OnCreateOptionsMenu()方法来绘制Menu

@Override

publicbooleanonCreateOptionsMenu(Menumenu){

//TODOAuto-generatedmethodstub

//menu.add()里面有四个参数依次是:

//第一个,菜单项的组别。

//第二个,菜单项的ID。

是menu识别编号,供识别menu用的。

很重要。

//第三个,菜单项的顺序。

这个参数的大小决定菜单出现的先后顺序。

顺序是参数由小到大,菜单从左到右,从上到下排列。

一行最多三个。

//第四个,菜单项显示的文本。

menu.add(0,Menu.FIRST,0,"注册").setIcon(R.drawable.ic_menu_add);

menu.add(0,Menu.FIRST+1,1,"关于").setIcon(R.drawable.ic_menu_about);

menu.add(0,Menu.FIRST+2,2,"退出").setIcon(R.drawable.ic_menu_quit);

setMenuBackground();

returntrue;

}

//设置menu菜单的背景

protectedvoidsetMenuBackground(){

getLayoutInflater().setFactory(newFactory(){

@Override

publicViewonCreateView(Stringname,Contextcontext,

AttributeSetattrs){

if(name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")){

try{//Askourinflatertocreatetheview

LayoutInflaterf=getLayoutInflater();

finalViewview=f.createView(name,null,attrs);

newHandler().post(newRunnable(){

publicvoidrun(){

view.setBackgroundResource(R.drawable.s0_music_list_bg);

}

});

returnview;

}catch(InflateExceptione){

}ca

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1