Android自定义实现微信标题栏
Android自定义实现微信标题栏
前言:在android的开发中有时我们需要更个性化的标题栏,而不仅仅是系统预定义的图标加软件名,同时有时候我们需要在标题栏中实现更多功能,如添加按钮响应用户点击。这就要求我们实现自定义标题栏。下面以微信的标题栏为例:
微信界面的标题栏:
step 1:写标题栏布局文件
新建一个布局文件titleBar.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#434343"
> <TextView
android:id="@+id/barText"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:layout_centerVertical="true" android:textSize="20sp"
android:layout_marginLeft="5dp"
android:text="微信(4)"
/> <ImageView
android:id="@+id/barAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_menu_add"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:layout_centerVertical="true"
/> <ImageView
android:id="@+id/barSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_menu_search"
android:layout_toLeftOf="@+id/barAdd"
android:layout_marginRight="20dp"
android:layout_centerVertical="true"
/>
</RelativeLayout>
step2:在源文件OnCreat中添加:设置titleBar.xml为标题栏布局
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
//设置标题布局为titlebar
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
}
step3:定义标题栏的风格
在drawable新建color.xml:
<?xml version="1.0" encoding="utf-8"?>
<color xmlns:android="http://schemas.android.com/apk/res/android" >
<item name="android:color">#434343</item> //设置背景色
</color>
在values新建titleStyle.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyStyle" parent="android:Theme.Light">
<item name="android:windowTitleSize">50dp</item>//设置宽度
<item name="android:windowTitleBackgroundStyle">@drawable/color</item> //设置背景风格,否则可能有边框
</style>
</resources>
在AndroidManifest.xml中修改配置:
在application中添加:android:theme="@style/titleStyle"
step4:添加点击处理:
在修改源文件为:
public class WeixinActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
public ImageView addBtn;
public ImageView searchBtn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
//设置标题布局为titlebar
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
addBtn=(ImageView)this.findViewById(R.id.barAdd);
searchBtn=(ImageView)this.findViewById(R.id.barSearch);
addBtn.setOnClickListener(this);
searchBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.barAdd:Toast.makeText(WeixinActivity.this, "你点击了添加", Toast.LENGTH_SHORT).show();break;
case R.id.barSearch:Toast.makeText(WeixinActivity.this, "你点击了搜索", Toast.LENGTH_SHORT).show();break;
default:break;
}
}
}
step5:运行

ok
这样就完成了,图片我用的系统的图片,不太美观,大家可以自己修改
Android自定义实现微信标题栏的更多相关文章
- Android 自定义Activity的标题栏(Titlebar)
缺省的情况下,通常见到Activity的标题栏(Titlebar)是这样的(红色框内): HandleContacts是Activity的标题.有时候,我们希望能改变一下这样单调的状况.比如,要在标题 ...
- [置顶]
xamarin android自定义标题栏(自定义属性、回调事件)
自定义控件的基本要求 这篇文章就当是自定义控件入门,看了几篇android关于自定义控件的文章,了解了一下,android自定义控件主要有3种方式: 自绘控件:继承View类,所展示的内容在OnDra ...
- android 开发 使用自定义布局实现标题栏复用(标题栏内容自定义:使用代码实现和xml布局自定义属性2种办法实现)
在个人学习的情况下可能很少使用自定义布局去实现大量复用的情况下,但是在一个开发工作的环境下就会使用到大量复用的自定义控件. 实现思维: 1.写一个xml的布局,用于标题栏的样式,并且添加在标题栏中你想 ...
- Android 自定义View合集
自定义控件学习 https://github.com/GcsSloop/AndroidNote/tree/master/CustomView 小良自定义控件合集 https://github.com/ ...
- 自定义 Activity 的 标题栏 TitleBar
自定义 Activity 的 标题栏 TitleBar 1. 修改标题栏的高度,背景 编辑styles.xml,添加: <?xmlversion="1.0" encoding ...
- Android 支付宝以及微信支付快速接入流程
简介 随着移动支付的普及,越来越多的App采用第三发支付,在这里我们以支付宝为例,做一个快速集成! 一.Android快速实现支付宝支付 1.首先,我们需要前往支付宝开放平台,申请我们的支付功能:ht ...
- Android 自定义title 之Action Bar
Android 自定义title 之Action Bar 2014-06-29 飞鹰飞龙... 摘自 博客园 阅 10519 转 25 转藏到我的图书馆 微信分享: Action Ba ...
- android自定义UI模板图文详解
不知道大家在实际开发中有没有自定义过UI模板?今天花时间研究了一下android中自定义UI模板,与大家分享一下. 每个设计良好的App都是自定义标题栏,在自定义标题栏的过程中大部分人可能都是自定义一 ...
- Android:仿微信开场切换界面
这实例很多人仿做,好实例还是不容错过!最重要是素材容易拿~ 效果: 默认3页面的切换,最后一个页面带按钮,点击进入另外一个页面 思路: 1.准备5个布局页面,1个为主函数布局页面,3个为切换的页面(其 ...
随机推荐
- [转]my97 datepicker IE9+ 故障修复方法
转自:http://blog.csdn.net/xuwj1984/article/details/38733483 问题1:my97 datepicker 不能弹出日期下拉框. 解决方法: 1.下载最 ...
- table边框
border-collapse 语法 border-collapse:separate | collapse | inherit 默认值:separate 取值 separate: 默认值.边框会被分 ...
- jquery拖动分页
scrollpagination.js /* ** Anderson Ferminiano ** contato@andersonferminiano.com -- feel free to cont ...
- javascript创建对象之工厂模式(一)
工厂模式在软件工程里面是一种比较常见的设计模式了.这种模式抽象了创建具体对象的过程. 上代码: function createHuman(name,sex) { var obj = new Objec ...
- express基础
express框架 const express = require("express"); 引入express框架 var app= express(); 实例化 相当于构造函 ...
- django 更新 模板语言
Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 在Django的模板语言中按此语法使用:{{ 变量名 ...
- python拓展1 week1-week5复习回顾
知识内容: 1.python基础概念及基础语法 2.python基础数据类型 3.python模块相关 4.python函数相关 5.python面向对象相关 6.python文件处理相关 注:本节内 ...
- django-媒体文件,图片存储
1.settings.py # 媒体文件 MEDIA_ROOT = 'media/'
- springsource-tool-suite插件各个历史版本
转自:https://blog.csdn.net/zhen_6137/article/details/79384798 目前spring官网(http://spring.io/tools/sts/al ...
- eclipse 的project explorer问题,这个怎样把localFileSystem去掉
转自:https://zhidao.baidu.com/question/550279043.html
