




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、定制Activity的标题栏原文地址:缺省的情况下,通常见到Activity的标题栏(Titlebar)是这样的(红色框内):HandleContacts是Activity的标题。我们在AndroidManifest.xml中的配置是这样的,<application android:icon="drawable/icon" android:label="string/app_name"> <activity android:name="main1" android:label="app1" >
2、; <intent-filter> <action android:name="ent.action.MAIN" /> <category android:name="ent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="main2" android:label=""></activity&g
3、t;<activity android:name="main3"></activity></application>android:label="app1" :这个属性就是设置标题栏显示文字的,你设置成app1,那么在显示main1这个Activtiy的时候就会显示app1这个字符串所对应的文字。如果像第二个Activity main2这样设置,设置label为空,那么仍然会有标题栏,而且标题栏是空的,仍然会占据这个位置,如下图所示:。如果像main3这样设置,我们没有设置标题栏的名称,那么默认就是使用应用程序的app
4、_name,比如,你的应用程序名称是:菜单测试,那么在标题栏就显示:菜单测试。有时候,我们希望能改变一下这样单调的状况。比如,要在标题栏中增加一个用于美化界面的图标、增一个输入框或按钮之类的,怎样才能做到这一点呢?我们不妨来看一个实际的例子。1.首先如下创建一个Android项目 2.将图片search.png拖入该项目的res/drawable-mdpi文件夹下。search.png图片的样子是这样的:3.在该项目的res/layout文件夹下,创建一个布局titlebar.xml,这个布局将用于定制Activity的标题栏编辑titlebar.xml,使其内容如下:<?xm
5、lversion="1.0" encoding="utf-8"?><LinearLayout xmlns:android="" android:orientation="horizontal" android:layout_width="fill_parent"
6、160; android:layout_height="wrap_content"> <ImageView android:layout_width="wrap_content"
7、0; android:layout_height="wrap_content" android:src="drawable/magnifier"
8、 android:gravity="bottom" /> <TextView android:layout_width="w
9、rap_content" android:layout_height="38dip" android:text="string/app_name"
10、160; android:textColor="#FFFFFFFF" android:textSize="14dip"
11、0; android:paddingTop="1dip" /> <EditText andro
12、id:id="+id/searchparameter" android:layout_width="wrap_content"
13、android:layout_height="38dip" android:text="ABCDEFGHIJ" android:
14、textSize="14dip" android:layout_margin="1dip" /> &
15、#160; <Button android:id="+id/button" android:layout_width="wrap_content"
16、 android:layout_height="38dip" android:text="OK"
17、0; android:textSize="14dip" /></LinearLayout> 在上面的LinearLayout中,增加了以下控件:一个ImageView,用于显示一个图标一个TextView,用于显示应用的名称一个EditText,用于接收输入一个Button,用于测试4.修改CustomizeTitlebar.java,使之如下:public class CustomizeTitlebar extends Act
18、ivity Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
19、160; setContentView(R.layout.main); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar); 以上加粗的两行很重要,而且必须要严格按照上面那样的顺序出现在代码中。即:requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);必须出现在super.onCreate(s
20、avedInstanceState);之后,setContentView(R.layout.main);之前。其意思就是告诉系统,本程序要自己定义Titlebar;getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.titlebar); 则必须出现在setContentView之后,其意思就是告诉系统,自定义的布局是R.layout.titlebar(即,我们前面编写的titlebar.xml)到这里,不妨来运行一下,看看结果如何:我们看到,Titlebar基本上按照我们的意思进行了改变,但也存在着一个缺陷:Titleb
21、ar太窄了,那么怎样改变Titlebar的高度呢?5.要改变Titlebar的高度,我们得先创建styles.xml:编辑styles.xml,使其内容如下:<?xmlversion="1.0" encoding="utf-8"?><resources> <style name="titlebarstyle"parent="android:Theme">
22、; <item name="android:windowTitleSize">38dip</item> </style></resources>上面<item name="android:windowTitleSize"
23、;>39dip</item>这一句,就是用来设定Titlebar的高度的。6.在上面的基础上,我们需要修改AndroidManifest.xml中,相应Activity的属性。如下:<?xmlversion="1.0" encoding="utf-8"?><manifestxmlns:android="" package="com.pat.customizetitlebar"
24、 android:versionCode="1" android:versionName="1.0"> <application android:icon="drawable/icon"android:label="string/app_name"> <activity android:na
25、me=".CustomizeTitlebar" android:label="string/app_name" android:theme="
26、style/titlebarstyle"> <intent-filter> <action android:name="ent.action.MAIN"/> &
27、#160; <category android:name="ent.category.LAUNCHER"/> </intent-filter> </activity>
28、0; </application> <uses-sdk android:minSdkVersion="8"/></manifest>注意粗体字是新增上去的,其中的titlebar是在第5步中增加的。现在来看看运行结果: 可以看到结果完全符合了我们的要求。7.我们还可以改变Titlebar的背景颜色。为此我们修改前面的styles.xml,使之如下:<?xml version="1.0" encoding="utf-8"?>
29、;<resources><style name="CustomizedWindowTitleBackgroundColor"> <item name="android:background">#047BF0</item></style><style name="titlebarstyle" parent="android:Theme
30、"> <item name="android:windowTitleSize">38dip</item> <item name="android:windowTitleBackgroundStyle">style/CustomizedWindowTitleB
31、ackgroundColor</item></style></resources>注意,其中的粗体字是新增加的。项目其他文件,均无需变动。运行结果如下: 8.最后,我们以OK按钮为例来测试Titlebar上的控件的事件响应。为此,修改CustomizeTitlebar.java,使之如下:public class CustomizeTitlebar extends ActivityimplementsOnClickListener private Button button; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 启发思维2025导游证资格考试试题及答案
- 2025年市场需求分析技巧试题及答案
- 理论结合实践的营养师试题及答案
- 演出经纪人资格证考试的成功案例:试题及答案
- 营养师资格证考试新手指南及试题答案
- 结合实际的营养师试题及答案
- 2024年营养师考试复习时的试题及答案
- 演出经纪人资格证全科知识布局与试题及答案
- 演出经纪人资格证考试全攻略与试题及答案
- 掌握导游证资格考试2025年试题及答案
- 补办电话卡委托书
- 人美版美术 二年级下册全册教学设计(表格式)
- 2024年认证行业法律法规及认证基础知识
- 机电控制及可编程序控制器技术课程设计报告
- 保险经纪人考试题库含答案
- 第10讲平面直角坐标系中图形面积的求解思路(原卷版+解析)-2021-2022学年七年级数学下册常考点(数学思想+解题技巧+专项突破+精准提升)
- 中班故事《响亮的大鼓》课件
- 《烃的衍生物》复习课件
- 2024小学语文教学及说课课件:六年级上册语文《丁香结》
- 2024至2030年中国矿产勘探行业深度调查及投融资战略研究报告
- 医院培训课件:《输血相关法规及输血知识培训》
评论
0/150
提交评论