android教学教案.docx
- 文档编号:24249204
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:38
- 大小:128.32KB
android教学教案.docx
《android教学教案.docx》由会员分享,可在线阅读,更多相关《android教学教案.docx(38页珍藏版)》请在冰豆网上搜索。
android教学教案
一、为什么学习Android
1:
兴趣爱好
2:
找到一份好工作。
3:
改善生活。
二、sdk文件结构
1:
platform-tools随版本更新而更新,tools的内容是只要有更新就能更新。
2:
环境变量配置。
三、eclipse配置
1:
general->apprearance->ColorandFonts->basic
2:
Editor->TextEdit显示行号。
3:
Java-Editor->contentAssist-AutoactivationtriggersforJava,在.后加abcd…z。
4:
Java-CodeStyle-Formatter-Edit设置代码显示样式。
四、模拟器的使用
1:
如何创建模拟器:
emulator.exe或在eclipse内创建。
2:
版本越高对电脑配置要求越高
3:
模拟器配置:
语言配置等。
4:
在模拟器上安装软件:
下载以apk结尾的文件。
在dos环境下进入platform-tools,再运行:
adbinstallaaa.apk
卸载:
adbuninstallpackage(包名)
五、创建一个android程序(HelloWorld)
1:
选择buildtarget时注意:
高版本可以运行低版本,故尽量选择低版本。
2:
Activity类:
关联文件查看Activity类内容:
把要关联的文件复制到platforms对对应的android版本文件夹下。
onCreate()方法。
3:
项目文件结构:
gen目录有个自动生成的文件,千万不能修改R.java文件,每个方法对应一类资源:
drawable、layout;assets内主要放置一些的资源文件:
如字体文件、音频及视频文件等,不管有没有用到发布时都要打包一起发布;Res目录下放置一些图片或小的音频文件,只有当用到时才发布,没用到不会发布;布局文件:
TextView标签。
六、设备界面演练
6.1文字标签处理
上一章中,我们实现了一个简单的项目,即在屏幕上输出了一段简单文字。
实际上为了满足现实的需求,我们可以对这行文字进行修饰,以达到我们想要的效果。
1:
设计思路
在实际应用中,程序员可以在Layout中创建一个对象,并定义strings.xml中的字符串常数,然后能过TextView的setText方法,在加载程序最初之际更改TextView的文字。
6.2改变屏幕窗口元素的背景颜色
为了满足特殊需求,可以将屏幕画面的背景颜色设置为自己需要的颜色。
本节将通过一个简单的实例,来简要介绍更改屏幕窗口中画面背景颜色的方法。
1:
设计思路
如果以默认的设置运行,窗口的底色是深黑色,这是SDK默认的颜色。
要更改Activity的窗口底色有许多方法,最简单的方法就是将颜色代码(colorcode)事先定义在drawable当中,这样在程序onCreate创建的同时加载预先定义的画面颜色。
本实例程序在drawable里指layout的背景色(BackGround)为白色,这里的白色(颜色代码为#FFFFFFFF)是预先在drawable中定义,这样,当程序运行时,背景就会变为白色。
该方法是指定ActivityLayout背景颜色最简单的方法。
在范例的最末,还示范了如何创建色彩板(colortable),以使Android手机程序可以像使用“常数”般直接取用颜色,并在应用程序的运行中显示。
6.3改变TextView的文字颜色
上一个范例通过Drawable来定义常数,但在实际设计中,最常用的方法是使用程序来控制TextView或其他对象的背景色(setBackgroundDrawable方法),如对象被单击时的背景色亮起,当失去焦点时又恢复成原来的背景色等。
本节将通过一个简单的实例,介绍更改TextView文字颜色的方法。
1.设计思路
本实例是扩展了前一个实例的实现,预先在Layout中设计好两个TextView,并在onCreate中调用setBackgroundDrawable方法和setTextColor方法来,实时更改原Layout里TextView中背景色以及文字颜色,最后使用Android默认的颜色常数(graphics.Color)来更改字的前景色。
6.4实现TextView文字的替换
前几个实例讲解了文本颜色的设置,其实我们也可以对TextView文字进行替换处理。
本节将通过一个简单实例的实现过程,介绍替换TextView文字的方法。
1:
设计思路
TextView文字的替换可通过CharSequence数据类型与ResourceID应用来实现。
可以先在Layout里通过Resource初始化TextView的文字,再在程序中动态更改TextView文字,但问题是如何在代码里取行Resource的字符串呢?
在Android里,确实可以通过某些方法直接用R.string.*转换ID为String,不过,这样的数据类型转换是不正规甚至是不妥的,正确的方法是利用Context.getSrting方法来取得存放在global里的ResourceID。
以下这个范例将示如何在程序运行时(runtime),通过ChatSequence依照ResourceID取出字符串,并正确更改TextView的文字。
2:
关键代码
mTextView02=(TextView)findViewById(R.id.myTextView02);
CharSequencestr_2=getString(R.string.str_2);
Stringstr_3="这是调用的Resource";
mTextView02.setText(str_3+str_2);
6.5获取手机分辨率
不同的手机有不同的分辨率,分辨率越大,屏幕将越清晰。
在当前的手机市场中,屏幕的分辨率大小已经成为了划分手机档次的一个重要标准。
本节将通过一个简单实例的实现过程,介绍获取手机分辨率大小的方法。
1:
设计思路
在开发手机应用程序时,除了要掌握底层API外最重要的莫过于屏幕分辨率的设置,因各家手机厂商所采用的屏幕尺寸不同,userUI接口呈现及布局自然也各异。
尽管Android可设置为随着窗口大小调整缩放比例,手机程序设计人员还是必须知道手机屏幕的边界,以避免缩放造成的布局(Layout)变形问题。
这个范例非常的简短,只需几行程序即可取得手机的分辨率,其关键是DisplayMertrics类的应用。
2:
关键代码
DisplayMetricsdm=newDisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);
StringstrOpt="这个手机屏幕分辨率是:
"+
dm.widthPixels+"×"+dm.heightPixels;
mTextView01=(TextView)findViewById(R.id.myTextView01);
mTextView01.setText(strOpt);
6.6样式修饰处理
前几个实例讲解了某个单独对象的修饰、处理方法。
但一个个指定文字的大小、颜色太浪费时间,我们可以使用类似CSS样式的方法来指定颜色、大小。
本节将通过一个简单实例的实现过程,介绍样式化处理对象的方法。
1:
设计思路
在Android程序开发过程中,也可以通过样式(Style)来初始化TextView的文本颜色、大小。
当然这个范例只是抛砖引玉,实际上在Layout中的任何对象(以XML定义)都可以通过设置样式来更改其外观。
本实例中将创建两个TextView以作对比,使其呈现两种不同的样式。
其中,Style的写法与前介绍到的颜色常数(color.xml)相同,同样是定义在res/values下面,但其XML定义的方式不同。
2:
关键代码
样式xml:
textSize">24sp textColor">#EC9237 textSize">16sp textColor">#FF7F7C 6.7按钮事件响应 前几个实例都是对显示样式的处理,本节将开始讲解和动态有关的知识。 在Windows窗口应用程序中,按钮是最常见的控件(Control),此控件也常在网页设计里出现,诸如网页注册窗体、应用程序的“确定”按钮等。 本节通过一个简单的实现过程,介绍Android中响应按钮事件的方法。 1.设计思路 按钮所触发的事件处理,我们称为EventHandler,只不过在Android当中,按钮事件是由系统的Button.OnClickListener所控制(熟悉Java程序设计的读者对OnxxxListener应该都不陌生)。 下面的实例将演示如何在Activity里布局一个按钮(Button),并设计这个按钮的事件处理函数,实现在用户单击按钮时更改TextView里的文字。 2: 关键代码 mButton1=(Button)findViewById(R.id.myButton1); mTextView1=(TextView)findViewById(R.id.myTextView1); mButton1.setOnClickListener(newButton.OnClickListener() { publicvoidonClick(Viewv) { //TODOAuto-generatedmethodstub mTextView1.setText("Hi,Everyone! ! "); } }); 还有一种方法: privateOnClickListenerlistener=newOnClickListener(){} 6.8页面间的转换(tiaozhuan) 在网上冲浪时,我们经常会访问不同的页面,浏览各式各样的网络资源。 在手机中,也经常需要访问不同的页面。 本节将通过一个简单实例的实现过程,介绍页面转换处理的方法。 1.设计思路 在Android应用中,是通过setContentView来实现页面的转换处理的。 在网页的世界里,想要在两个网页间做转换,只要利用超链接(HyperLink)就可以实现。 那么在手机的世界里,要如何实现手机页面之间的转换呢? 最简单的方式就是改变Activity的Layout。 在这个范例里,将布局两个Layout,分别为Layoutl(main.xml)与Layout2(main.xml),默认载入的Layout为main.xml,且在Layout中创建一个按钮,当单击按钮里,显示第2个Layout(main.xml);同样地,在Layout2中也设计一个按钮,当单击第2个Layout的按钮之后,则显示回原来的Layout1,现在就来示范如何在两个页面之间互相切换。 2: 关键代码 以findViewById()取得Button对象,并添加onClickListener Buttonb1=(Button)findViewById(R.id.button1); b1.setOnClickListener(newButton.OnClickListener() { publicvoidonClick(Viewv) { jumpToLayout2(); } }); 将layout由main.xml切换成mylayout.xml publicvoidjumpToLayout2() { /*将layout改成mylayout.xml*/ setContentView(R.layout.mylayout); /*以findViewById()取得Button对象,并添加onClickListener*/ Buttonb2=(Button)findViewById(R.id.button2); b2.setOnClickListener(newButton.OnClickListener() { publicvoidonClick(Viewv) { jumpToLayout1(); } }); } 将layout由mylayout.xml切换成main.xm publicvoidjumpToLayout1() { /*将layout改成main.xml*/ setContentView(R.layout.main); /*以findViewById()取得Button对象,并添加onClickListener*/ Buttonb1=(Button)findViewById(R.id.button1); b1.setOnClickListener(newButton.OnClickListener() { publicvoidonClick(Viewv) { jumpToLayout2(); } }); } 6.9Activity调用(diaoyong1) 在上一个实例中介绍了如何用切换Layout的方式进行手机页面间的转换。 如果要转换的页面并不单是背景、颜色或文字内容不同,而是Activity的置换,那么就不是单单改变Layout,尤其是需要传递的变量不像网页可以通过Cookie或Session来完成,在程序里要移交主控权到另外一个Activity,光靠先前Layout是无法实现的。 本节将通过一个简单实例的实现过程介绍调用另一个Activity的方法。 1.设计思路 在Android和程序设计中,可在主程序里使用startActivity()这个方法来调用另一个Activity(主程序本身即是一个Activity),但关键并不在于startActivity这个方法,,而是Intent这个特有的对象,Intent顾名思义,是“想要”或“意图”之意,在主Activity当中,它告诉程序自已是什么,并想要前往哪里,这就是Intent对象所处理的事了。 本范例并没有特别的Layout布局,而是直接在主Activity(Activity1)中部署一个按钮,当单击按钮时,告诉主Activity前往Activity2,并在Activity2创建一个回到Activity1的按钮,本范例将利用此简易的程序描述,示范如何在一个Activity中调用另一个Activity。 2: 关键代码 第一个代码: b1.setOnClickListener(newButton.OnClickListener() { publicvoidonClick(Viewv) { /*new一个Intent对象,并指定要启动的class*/ Intentintent=newIntent(); intent.setClass(diaoyong.this,diaoyong_1.class); /*调用一个新的Activity*/ startActivity(intent); /*关闭原本的Activity*/ diaoyong.this.finish(); } }); 第二Activity代码: b2.setOnClickListener(newButton.OnClickListener() { publicvoidonClick(Viewv) { /*new一个Intent对象,并指定要启动的class*/ Intentintent=newIntent(); intent.setClass(diaoyong_1.this,diaoyong.class); /*调用一个新的Activity*/ startActivity(intent); /*关闭原本的Activity*/ diaoyong_1.this.finish(); } }); 6.10多个Activity间的数据传递(different) 上节的实例展示了如何在Activity中调用另一个Activity,但是在现实应用中,经常需要在多个不同的Activity之间传递数据。 本节将通过一个简单实例的实现过程,介绍在不同Activity之间传递数据的方法。 1.设计思路 如果要在调用另外一个Activity的同时传递数据,需要利用android.os.Bundle对象封装数据的能力封装要传递的数据或参数,Bundle可用来传递不同Intent之间的数据。 本实例将设计一个简易的表单类型,在Activity1中收集User输入的数据,在离开Activity1的同时,将User选择的结果传递至下一个Activity2。 下面以一个简单“体重计算器”来演示如何传递数据到下一个Activity里。 2: 关键代码 第一个activity代码 b1.setOnClickListener(newButton.OnClickListener() { publicvoidonClick(Viewv) { /*取得输入的身高*/ EditTextet=(EditText)findViewById(R.id.height); doubleheight=Double.parseDouble(et.getText().toString()); /*取得选择的性别*/ Stringsex=""; RadioButtonrb1=(RadioButton)findViewById(R.id.sex1); if(rb1.isChecked()) { sex="M"; } else { sex="F"; } /*new一个Intent对象,并指定class*/ Intentintent=newIntent(); intent.setClass(different.this,different_1.class); /*new一个Bundle对象,并将要传递的数据传入*/ Bundlebundle=newBundle(); bundle.putDouble("height",height); bundle.putString("sex",sex); /*将Bundle对象assign给Intent*/ intent.putExtras(bundle); /*调用ActivityEX03_10_1*/ startActivity(intent); } }); 第二个activity代码 /*取得Intent中的Bundle对象*/ Bundlebunde=this.getIntent().getExtras(); /*取得Bundle对象中的数据*/ Stringsex=bunde.getString("sex"); doubleheight=bunde.getDouble("height"); /*判断性别*/ StringsexText=""; if(sex.equals("M")) { sexText="男性"; } else { sexText="女性"; } /*取得标准体重*/ Stringweight=this.getWeight(sex,height); /*设置输出文字*/ TextViewtv1=(TextView)findViewById(R.id.text1); tv1.setText("你是一位"+sexText+"\n你的身高是" +height+"厘米\n你的标准体重是"+weight+"公斤"); 6.11将数据返回到前一个Activity(front) 在现实应用中,经常需要将数据返回到前一个Activity。 本节将通过一个简单实例的实现过程,介绍将数据返回到前一个Activity的方法。 1.设计思路 如上一个示例所示,可将数据Activity1传递至Activity2,但是如果要再回到Activity1,数据是否要再封装一次呢? 而且前一个Activity1早就被程序销毁了,倘若在Activity1最后用finish()方法结束程序,再通过Activity2将数据采用Bundle的方式通过新打开Activity1并传递参数,这样做虽然也可以恢复用户输入的数据,但是并不符合我们所期待的效果。 如果要在页面加上一个“回上页”的按钮,而非通过模拟的返回键,且回上页后又能保留之前输入的相关信息,那么就必须使用startActivityForResult()来唤起一个Activity。 利用这个方法,前一个Activity1便会等待此Activity2的返回,而Activity返回的数据就被显示从而达到想要的结果。 2: 关键代码 第一个activity代码 b1.setOnClickListener(newButton.OnClickListener() { publicvoidonClick(Viewv) { /*取得输入的身高*/ et=(EditText)findViewById(R.id.height); doubleheight=Double.parseDouble(et.getText().toString()); /*取得选择的性别*/ Stringsex=""; rb1=(RadioButton)findViewById(R.id.sex1); rb2=(RadioButton)findViewById(R.id.sex2); if(rb1.isChecked()) { sex="M"; } else { sex="F"; } /*new一个Intent对象,并指定class*/ Intentintent=newIntent(); intent.setClass(front.this,front_1.class); /*new一个Bundle对象,并将要传递的数据传入*/ Bundlebundle=newBundle(); bundle.putDouble("height",height); bundle.putString("sex",sex); /*将Bundle对象assign给Intent*/ intent.putExtras(bundle); /*调用ActivityEX03_11_1*/ startActivityForResult(intent,0); } }); 第二个activity代码 /*取得Intent
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 教学 教案
![提示](https://static.bdocx.com/images/bang_tan.gif)