Android开发自定义 标题栏 titlebar.docx
- 文档编号:5009762
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:10
- 大小:174.33KB
Android开发自定义 标题栏 titlebar.docx
《Android开发自定义 标题栏 titlebar.docx》由会员分享,可在线阅读,更多相关《Android开发自定义 标题栏 titlebar.docx(10页珍藏版)》请在冰豆网上搜索。
Android开发自定义标题栏titlebar
Android开发:
定制Activity的标题栏(Titlebar)
缺省的情况下,通常见到Activity的标题栏(Titlebar)是这样的(红色框内):
HandleContacts是Activity的标题。
有时候,我们希望能改变一下这样单调的状况。
比如,要在标题栏中增加一个用于美化界面的图标、增一个输入框或按钮之类的,怎样才能做到这一点呢?
我们不妨来看一个实际的例子。
1. 首先如下创建一个Android项目
2. 将图片magnifier.png拖入该项目的res/drawable-mdpi文件夹下。
magnifier.png图片的样子是这样的:
3. 在该项目的res/layout文件夹下,创建一个布局titlebar.xml,这个布局将用于定制Activity的标题栏
编辑titlebar.xml,使其内容如下:
xmlversion="1.0" encoding="utf-8"?
>
xmlns: Android=" android: orientation="horizontal" android: layout_width="fill_parent" android: layout_height="wrap_content"> android: layout_width="wrap_content" android: layout_height="wrap_content" android: src="@drawable/magnifier" android: gravity="bottom" /> android: layout_width="wrap_content" android: layout_height="38dip" android: text="@string/app_name" android: textColor="#FFFFFFFF" android: textSize="14dip" android: paddingTop="1dip" /> android: id="@+id/searchparameter" android: layout_width="wrap_content" android: layout_height="38dip" android: text="ABCDEFGHIJ" android: textSize="14dip" android: layout_margin="1dip" /> id="@+id/button" android: layout_width="wrap_content" android: layout_height="38dip" android: text="OK" android: textSize="14dip" />
在上面的LinearLayout中,增加了以下控件:
一个ImageView,用于显示一个图标
一个TextView,用于显示应用的名称
一个EditText,用于接收输入
一个Button,用于测试
4. 修改CustomizeTitlebar.java,使之如下:
publicclassCustomizeTitlebarextendsActivity
{
@Override
publicvoidonCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.titlebar);
}
}
以上加粗的两行很重要,而且必须要严格按照上面那样的顺序出现在代码中。
即:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);必须出现在super.onCreate(savedInstanceState);之后,setContentView(R.layout.main);之前。
其意思就是告诉系统,本程序要自己定义Titlebar;
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.titlebar);则必须出现在setContentView之后,其意思就是告诉系统,自定义的布局是R.layout.titlebar(即,我们前面编写的titlebar.xml)
到这里,不妨来运行一下,看看结果如何:
我们看到,Titlebar基本上按照我们的意思进行了改变,但也存在着一个缺陷:
Titlebar太窄了,那么怎样改变Titlebar的高度呢?
5. 要改变Titlebar的高度,我们得先创建styles.xml:
编辑styles.xml,使其内容如下:
xmlversion="1.0" encoding="utf-8"?
>
Theme"> windowTitleSize">38dip 上面 windowTitleSize">39dip这一句,就是用来设定Titlebar的高度的。 6. 在上面的基础上,我们需要修改AndroidManifest.xml中,相应Activity的属性。 如下: xmlversion="1.0" encoding="utf-8"? > android=" package="com.pat.customizetitlebar" android: versionCode="1" android: versionName="1.0"> icon="@drawable/icon"android: label="@string/app_name"> name=".CustomizeTitlebar" android: label="@string/app_name" android: theme="@style/titlebarstyle"> name="android.intent.action.MAIN"/> name="android.intent.category.LAUNCHER"/> minSdkVersion="8"/> 注意粗体字是新增上去的,其中的titlebar是在第5步中增加的。 现在来看看运行结果: 可以看到结果完全符合了我们的要求。 7. 我们还可以改变Titlebar的背景颜色。 为此我们修改前面的styles.xml,使之如下: xmlversion="1.0" encoding="utf-8"? > background">#047BF0 Theme"> windowTitleSize">38dip windowTitleBackgroundStyle">@style/CustomizedWindowTitleBackgroundColor 注意,其中的粗体字是新增加的。 项目其他文件,均无需变动。 运行结果如下: 8. 最后,我们以OK按钮为例来测试Titlebar上的控件的事件响应。 为此,修改CustomizeTitlebar.java,使之如下: publicclassCustomizeTitlebarextendsActivity implements OnClickListener { privateButtonbutton; @Override publicvoidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.titlebar); button=(Button)findViewById(R.id.button); button.setOnClickListener(this); } publicvoidonClick(Viewv) { if(v.getId()==R.id.button) { Toast.makeText(this,"OKbuttoninTitlebarclicked...",Toast.LENGTH_LONG).show(); } } } 粗体字部分是新增加的代码。 重新运行本项目,等界面出来后,点击Titlebar上的OK按钮,将出现: 这说明,Titlebar上自己增加上去的控件,可以很好地响应相关的事件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android开发自定义 标题栏 titlebar Android 开发 自定义
![提示](https://static.bdocx.com/images/bang_tan.gif)