Android-自己定义标题栏

2014年4月25日 分享知识点

最近也比較多事情,想发发博客就是心有余而力不足,本篇博文主要教大家怎样实现自己定义标题栏,非常easy。那么聪明的你一下就看懂。

有兴趣能够加一下 群号是299402133,里面有丰富的学习资源,志同道合的你。一定会有所收获的。

实现步骤

* 1、给自己定义标题提供一个界面

* 2、将自己定义标题应用给Activity窗体 
* 3、把android系统为Activity设置的默认主题改为自己的主题

效果图:

代码下载:http://download.csdn.net/detail/wwj_748/7249585

/02_CustomTitle/res/layout/constom_title.xml

  1. <?xml version="1.0" encoding="utf-8"?
  2.  
  3. >
  4. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:background="@drawable/rectangle"
  8. android:orientation="horizontal" >
  9.  
  10. <!-- 指定背景。该背景自己画的 -->
  11.  
  12. <TextView
  13. style="@android:style/TextAppearance.Medium"
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content"
  16. android:layout_gravity="center_vertical"
  17. android:text="IT_xiao小巫"
  18. android:textColor="#ffffff"
  19. android:textSize="14sp" />
  20.  
  21. </LinearLayout>

这里使用到了一个图像资源,是在drawable文件夹下的:

/02_CustomTitle/res/drawable/rectangle.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:shape="rectangle" >
  4.  
  5. <!-- 定义渐变色 -->
  6. <gradient
  7. android:angle="270"
  8. android:endColor="#80FF00FF"
  9. android:startColor="#FFFF0000" />
  10. <!-- 定义控件内容到边界的距离(到四条边界的距离都是2) -->
  11. <padding
  12. android:bottom="2dp"
  13. android:left="2dp"
  14. android:right="2dp"
  15. android:top="2dp" />
  16. <!-- 定义圆角 -->
  17. <corners android:radius="8dp" />
  18.  
  19. </shape>

/02_CustomTitle/src/com/wwj/constomtitle/MainActivity.java

  1. package com.wwj.constomtitle;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.view.Window;
  6.  
  7. /**
  8. * 1、给自己定义标题提供一个界面
  9. * 2、将自己定义标题应用给Activity窗体
  10. * 3、把android系统为Activity设置的默认主题改为自己的主题
  11. *
  12. * @author wwj
  13. *
  14. */
  15. public class MainActivity extends Activity {
  16.  
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20.  
  21. // 指定使用自己定义标题
  22. requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
  23. setContentView(R.layout.activity_main);
  24. // 设置窗体的自己定义标题布局文件
  25. getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.constom_title);
  26.  
  27. }
  28.  
  29. }

改动默认样式

  1. <!-- 该样式继承系统的默认样式 -->
  2. <style name="customTheme" parent="android:Theme">
  3.  
  4. <!-- 设置标题前景色为透明 -->
  5. <item name="android:windowContentOverlay">@drawable/nocolor</item>
  6. <!-- 设置标题高度为44dp -->
  7. <item name="android:windowTitleSize">44dp</item>
  8. <!-- 设置标题背景色 -->
  9. <item name="android:windowTitleBackgroundStyle">@style/customBg</item>
  10. </style>
  11. <!-- 定义一个背景样式 -->
  12. <style name="customBg">
  13. <item name="android:background">@drawable/rectangle</item>
  14. </style>

/02_CustomTitle/res/values/drawable.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3.     <!-- 定义一个透明色 -->
  4.     <drawable name="nocolor">#00000000</drawable>
  5. </resources>
  1. AndroidManifest.xml设置主题
  1. <?xml version="1.0" encoding="utf-8"?
  2. >
  3. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  4.     package="com.wwj.constomtitle"
  5.     android:versionCode="1"
  6.     android:versionName="1.0" >
  7.     <uses-sdk
  8.         android:minSdkVersion="8"
  9.         android:targetSdkVersion="18" />
  10.     <application
  11.         android:allowBackup="true"
  12.         android:icon="@drawable/ic_launcher"
  13.         android:label="@string/app_name"
  14.         android:theme="@style/customTheme" >
  15.         <activity
  16.             android:name="com.wwj.constomtitle.MainActivity"
  17.             android:label="@string/app_name" >
  18.             <intent-filter>
  19.                 <action android:name="android.intent.action.MAIN" />
  20.                 <category android:name="android.intent.category.LAUNCHER" />
  21.             </intent-filter>
  22.         </activity>
  23.     </application>
  24. </manifest>
  1.  

Android-自己定义标题栏的更多相关文章

  1. android开发之---文字居中---android中去掉标题栏

    1. 让textView里面的内容水平居中 :    android:gravity="center_horizontal" 2. 让textView控件在它的父布局里水平居中   ...

  2. Android中去掉标题栏

    在Android中去掉标题栏有三种方法,它们也有各自的特点. 1.在代码里实现 this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 记 ...

  3. Android自己定义DataTimePicker(日期选择器)

    Android自己定义DataTimePicker(日期选择器)  笔者有一段时间没有发表关于Android的文章了,关于Android自己定义组件笔者有好几篇想跟大家分享的,后期会记录在博客中.本篇 ...

  4. Android UI--自定义ListView(实现下拉刷新+加载更多)

    Android UI--自定义ListView(实现下拉刷新+加载更多) 关于实现ListView下拉刷新和加载更多的实现,我想网上一搜就一堆.不过我就没发现比较实用的,要不就是实现起来太复杂,要不就 ...

  5. Android自己定义组件系列【7】——进阶实践(4)

    上一篇<Android自己定义组件系列[6]--进阶实践(3)>中补充了关于Android中事件分发的过程知识.这一篇我们接着来分析任老师的<可下拉的PinnedHeaderExpa ...

  6. ANDROID自己定义视图——onLayout源代码 流程 思路具体解释

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 简单介绍: 在自己定义view的时候.事实上非常easy.仅仅须要知道3步骤: 1.測量- ...

  7. Android 改变窗口标题栏的布局

    Android改变窗口标题栏的布局  第一种方式 --在XML文件里面引入配置文件作为标题. 第二种方式  --动态的代码加入进去. 第三种方式(网上的): 一. 重点 一般应用的Title都是建立应 ...

  8. Android 自己定义View (二) 进阶

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24300125 继续自己定义View之旅.前面已经介绍过一个自己定义View的基础 ...

  9. Android 自己定义ScrollView ListView 体验各种纵向滑动的需求

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38950509.本文出自[张鸿洋的博客] 1.概述 群里的一个哥们有个需求是这种: ...

随机推荐

  1. oc10--练习

    // // main.m // 练习 #import <Foundation/Foundation.h> @interface Car : NSObject { @public int w ...

  2. ubuntu下如何查看和设置分辨率

    ubuntu下如何查看和设置分辨率 在ubuntu下可以使用xrandr来设置自己需要的分辨率.大致步骤如下:  www.2cto.com   1.使用xrandr命令查看屏幕分辨率,这里我使用的是显 ...

  3. 【BZOJ2438】【中山市选2011】杀人游戏

    [问题描述] 一位冷血的杀手潜入 Na-wiat,并假装成平民.警察希望能在 N 个人里面, 查出谁是杀手.  警察能够对每一个人进行查证,假如查证的对象是平民,他会告诉警察,他认识的人, 谁是杀手, ...

  4. [codeforces contest 1119 F] Niyaz and Small Degrees 解题报告 (树形DP+堆)

    interlinkage: http://codeforces.com/contest/1119/problem/F description: 有一颗$n$个节点的树,每条边有一个边权 对于一个$x$ ...

  5. 线段树(1)——点修改&建树

    #include<cstdio> #include<algorithm> using namespace std; #define MAX 10000 #define INF ...

  6. 一篇个人感觉比较好的lua入门的文章

    原文转自www.cppprog.com,由三篇文章组成 Lua是一个嵌入式的脚本语言,它不仅可以单独使用还能与其它语言混合调用.Lua与其它脚本语言相比,其突出优势在于: 1.  可扩展性.Lua的扩 ...

  7. logrotate配置文件

    一.logrotate配置文件 /etc/logrotate.conf

  8. wcf 学习程序

    (一)创建WCF Service (1)创建WCF Service类库 创建一个Class Library的项目: 删除掉默认的Class1.cs文件,然后添加一个WCF Service项目: Vis ...

  9. WordPress瀑布流主题PinThis中文版v1.6.8

    PinThis主题来源于英语网站http://pinthis.pixelbeautify.com/的汉化(语言文件+控制面板),中文版采用的是翻译器手工核对,并不完美,只对主题中文化,其他没做任何更改 ...

  10. javascript实现选项卡切换的4种方法

    方法一:for循环+if判断当前点击与自定义数组是否匹配 <html lang="en"> <head> <meta charset="UT ...