您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 软件工程 > Android开发第三章用户人机界面ch03
用户人机界面GoogleAndroidSDK开发范例大全363-1更改与显示文字标签—TextView标签的使用范例说明前一章写了HelloWorld之后,一直觉得没有写半行代码对不起自己,所以在本章人机界面一开始,则延续HelloWolrd的气势,进行与TextView文字标签的第一次接触。在此范例中,将会在Layout中创建TextView对象,并学会定义res/values/strings.xml里的字符串常数,最后通过TextView的setText方法,在预加载程序之初,更改TextView文字。运行结果▲图3-1认识TextView.setText更改默认Layout里定义的文本字符串范例程序src/irdc.ex03_01/EX03_01.java主程序示范以setText方法,输出String类型的字符串变量。packageirdc.ex03_01;importandroid.app.Activity;importandroid.os.Bundle;/*必须引用widget.TextView才能在程序里声明TextView对象*/importandroid.widget.TextView;publicclassEX03_01extendsActivity{第3章使用者人机接口37/*必须引用widget.TextView才能在程序里声明TextView对象*/privateTextViewmTextView01;/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);/*载入main.xmlLayout,此时myTextView01:text为str_1*/setContentView(R.layout.main);/*使用findViewBtId函数,利用ID找到该TextView对象*/mTextView01=(TextView)findViewById(R.id.myTextView01);Stringstr_2=欢迎来到Android的TextView世界...;mTextView01.setText(str_2);}}res/layout/main.xml以android:id命名TextView的ID为mTextView01;在较旧的版本写法与1.0的不同,请特别留意。?xmlversion=1.0encoding=utf-8?AbsoluteLayoutandroid:id=@+id/widget35android:layout_width=fill_parentandroid:layout_height=fill_parentxmlns:android=:id=@+id/myTextView01android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=@string/str_1android:layout_x=61pxandroid:layout_y=69px/TextView/AbsoluteLayoutGoogleAndroidSDK开发范例大全38扩展学习TextView里的setText方法支持以下多态构造方法:publicfinalvoidsetText(CharSequencetext)publicfinalvoidsetText(intresid)publicvoidsetText(CharSequencetext,TextView.BufferTypetype)publicfinalvoidsetText(intresid,TextView.BufferTypetype)publicfinalvoidsetText(char[]text,intstart,intlen)在此,以最后setText(char[]text,intstart,intlen)为例,第一个参数为char数组作为输出依据,第二个参数为从哪一个元素索引开始选取,第三个参数则为要取出多少个元素,请看以下的例子:charchar_1[]=newchar[5];char_1[0]='D';char_1[1]='a';char_1[2]='v';char_1[3]='i';char_1[4]='d';mTextView01.setText(char_1,1,3);如上述程序所示,输出的结果是“avi”,因为从第1个元素索引开始,共取3个元素;最后则要提醒你,TextView.setTextView不支持HTMLTAG的输出,所以即便写成这样:mTextView01.setText(ahref=\戴维的博客/a);实际输出时,也就是纯文本而已,并不会作HTMLTAG的转换。但若撇开HTMLTAG之外(如“”开头的标记),在TextView里加上了android:autoLink=all,那么正文中若有网址(http://),是可以被显示的,以下这个范例就交给你自己实现看看。TextViewxmlns:android=:layout_width=fill_parentandroid:layout_height=wrap_contentandroid:autoLink=allandroid:text=请访问戴维的博客:第3章使用者人机接口393-2更改手机窗口画面底色—drawable定义颜色常数的方法范例说明在之前的范例运行结果,窗口的底色一律是“深黑色”,这是SDK默认的颜色,要更改Activity里的窗口底色有许多方法,最简单的方法就是将颜色色码事先定义在drawable当中,当程序onCreate创建的同时,加载预先定义的画面颜色。此范例程序的设计方式是在drawable里指定Layout的背景色(BackGround)为白色,但这里的“白色”(颜色色码为#FFFFFFFF)预先定义在drawable当中,当程序运行时,背景就会变为白色。这是指定ActivityLayout背景颜色最简单的方法,在范例最末,则将示范如何创建色彩板(colortable),让Android手机程序可以像使用“常数”般直接取用,并反应在应用程序的运行阶段。运行结果▲图3-2使用drawable设置颜色常数,应用于程序运行时的结果GoogleAndroidSDK开发范例大全40范例程序src/irdc.ex03_02/EX03_02.java程序继承自Activity类,并在重写onCreate创建之初,直接显示R.layout.main(main.xml)这个页面安排的布局配置。packageirdc.ex03_02;importandroid.app.Activity;importandroid.os.Bundle;publicclassEX03_02extendsActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}}res/layout/main.xml在页面布局上,使用了2个TextView对象,以及2个EditText对象,关键在于android:background=@drawable/white让程序背景变成了白色,而android:textColor=@drawable/darkgray将TextView里的文字颜色(textColor)设为灰色,当中“@drawable/white”及“@drawable/darkgray”的写法则是参考事先于drawable里定义好的颜色常数,将在res/values/color.xml里看见颜色的定义描述。?xmlversion=1.0encoding=utf-8?AbsoluteLayoutandroid:id=@+id/widget35android:layout_width=fill_parentandroid:layout_height=fill_parentandroid:background=@drawable/whitexmlns:android=:id=@+id/widget28android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=@string/str_idandroid:textColor=@drawable/darkgrayandroid:layout_x=61pxandroid:layout_y=69px第3章使用者人机接口41/TextViewTextViewandroid:id=@+id/widget29android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=@string/str_pwdandroid:textColor=@drawable/darkgrayandroid:layout_x=61pxandroid:layout_y=158px/TextViewEditTextandroid:id=@+id/widget31android:layout_width=120dipandroid:layout_height=wrap_contentandroid:textSize=18spandroid:layout_x=114pxandroid:layout_y=57px/EditTextEditTextandroid:id=@+id/widget30android:layout_width=120dipandroid:layout_height=wrap_contentandroid:textSize=18spandroid:password=trueandroid:layout_x=112pxandroid:layout_y=142px/EditText/AbsoluteLayout扩展学习事先将定义好的颜色代码(colorcode)以drawable的名称(name)存放于resources当中,这是开发Android程序的好习惯,正如同字符串常数一样,颜色也是可以事先定义好的。在本范例中学会了使用drawable的resource的定义方法:drawablename=color_namecolor_value/drawable定义好的drawablename常数,必须存放于res/values下面,作为资源取用,但定义好的背景颜色并非只能当作是“默认”颜色声明使用,在程序的事件里,是可以通过程序来更改的,如以下程序所示:Resourcesresources=getBaseContext().getResources();DrawableHippoDrawable=resources.getDrawable(R.dra
本文标题:Android开发第三章用户人机界面ch03
链接地址:https://www.777doc.com/doc-8694415 .html