Android-自己定义标题栏

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

<?xml version="1.0" encoding="utf-8"?

>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/rectangle"
    android:orientation="horizontal" >

    <!-- 指定背景。该背景自己画的 -->

    <TextView
        style="@android:style/TextAppearance.Medium"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:text="IT_xiao小巫"
        android:textColor="#ffffff"
        android:textSize="14sp" />

</LinearLayout>

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

/02_CustomTitle/res/drawable/rectangle.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <!-- 定义渐变色 -->
    <gradient
        android:angle="270"
        android:endColor="#80FF00FF"
        android:startColor="#FFFF0000" />
    <!-- 定义控件内容到边界的距离(到四条边界的距离都是2) -->
    <padding
        android:bottom="2dp"
        android:left="2dp"
        android:right="2dp"
        android:top="2dp" />
    <!-- 定义圆角 -->
    <corners android:radius="8dp" />

</shape>

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

package com.wwj.constomtitle;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;

/**
 * 1、给自己定义标题提供一个界面
 * 2、将自己定义标题应用给Activity窗体
 * 3、把android系统为Activity设置的默认主题改为自己的主题
 *
 * @author wwj
 *
 */
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		// 指定使用自己定义标题
		requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
		setContentView(R.layout.activity_main);
		// 设置窗体的自己定义标题布局文件
		getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.constom_title);

	}

}

改动默认样式

 <!-- 该样式继承系统的默认样式 -->
    <style name="customTheme" parent="android:Theme">

        <!-- 设置标题前景色为透明 -->
        <item name="android:windowContentOverlay">@drawable/nocolor</item>
        <!-- 设置标题高度为44dp -->
        <item name="android:windowTitleSize">44dp</item>
        <!-- 设置标题背景色 -->
        <item name="android:windowTitleBackgroundStyle">@style/customBg</item>
    </style>
    <!-- 定义一个背景样式 -->
    <style name="customBg">
        <item name="android:background">@drawable/rectangle</item>
    </style>

/02_CustomTitle/res/values/drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!-- 定义一个透明色 -->
    <drawable name="nocolor">#00000000</drawable>

</resources>

在AndroidManifest.xml设置主题
<?xml version="1.0" encoding="utf-8"?

>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.wwj.constomtitle"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/customTheme" >
        <activity
            android:name="com.wwj.constomtitle.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

时间: 2024-10-08 05:39:55

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

Android中去掉标题栏

在Android中去掉标题栏有三种方法,它们也有各自的特点. 1.在代码里实现 this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 记住:这句代码要写在setContentView()前面. 2.在清单文件(manifest.xml)里面实现 <application android:icon="@drawable/icon" android:label="@string/app_name" a

Android UI-自定义日历控件

Android UI-自定义日历控件 本篇博客笔者给大家分享一个日历控件,这里有个需求:要求显示当前月的日期,左右可以切换月份来查看日期. 我们想一想会如何去实现这样的一个控件,有开源的,但可能不太满足我们的特定的需求,这里笔者自定义了一个,读者可以根据自己的需求来修改代码.下面来说一下实现的思路: 首先我们要显示当前月份,自然我们要计算出当前的日期,并且把每一天对应到具体的星期,我们会有以下效果: 我们先想一下这样的效果用什么控件可以实现?很自然可以想到用网格视图GridView,但这里笔者使

Android笔记之标题栏的各种操作

1.改变标题栏的背景颜色 this.setTitleColor(textColor); 2.为页面设置返回键 ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); ... @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (ite

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

简单介绍: 在自己定义view的时候.事实上非常easy.仅仅须要知道3步骤: 1.測量--onMeasure():决定View的大小 2.布局--onLayout():决定View在ViewGroup中的位置 3.绘制--onDraw():怎样绘制这个View. 而第3步的onDraw系统已经封装的非常好了,基本不用我们来担心,仅仅须要专注到1,2两个步骤就中好了. 第一步的測量,能够參考我之前的文章:(ANDROID自己定义视图--onMeasure流程.MeasureSpec具体解释) 而

Android自己定义控件皮肤

Android自己定义控件皮肤 对于Android的自带控件,其外观仅仅能说中规中矩,而我们平时所示Android应用中,一个简单的button都做得十分美观.甚至于很多button在按下时的外观都有一定变化,用户体验十分好. 这当中,就涉及到了Android自己定义控件属性的操作方法,下面操作以实现自己定义button皮肤为例. 1. 我们要自己定义将要实现的外观状态.能够是图片或者是自己定义的xml,这是我们直接自己定义不同状态的颜色xml,在values文件夹下新建colors.xml,代

android 自己定义控件属性(TypedArray以及attrs解释)

近期在捣鼓android 自己定义控件属性,学到了TypedArray以及attrs.在这当中看了一篇大神博客Android 深入理解Android中的自己定义属性.我就更加深入学习力一番.我就沿着这个学习,讲一下流程吧,兴许一篇还有应用. 1.attrs文件编写 <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="titleText" for

Android中隐藏标题栏和状态栏

http://www.cnblogs.com/zhuguangwei/archive/2011/01/18/1938276.html 一.隐藏标题栏 //隐藏标题栏 this.requestWindowFeature(Window.FEATURE_NO_TITLE); 二.隐藏状态栏 //隐藏状态栏 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FL

46.Android 自己定义Dialog

46.Android 自己定义Dialog Android 自己定义Dialog 前言 提示Dialog 提示Dialog 效果图 菜单Dialog 菜单Dialog 效果图 DialogActivity 前言 提供两套自己定义Dialog模板 第一种.提示Dialog,有消失时间. 另外一种,菜单Dialog,用于用户交互. 提示Dialog CustomDialog public class CustomDialog extends Dialog { private TextView dia

Android自己定义组件系列【6】——进阶实践(3)

上一篇<Android自己定义组件系列[5]--进阶实践(2)>继续对任老师的<可下拉的PinnedHeaderExpandableListView的实现>进行了分析,这一篇计划中间插一段"知识点",对Android中的事件分发机制进行解析.细心的朋友可能会发现,打开大牛写的Android项目,里面非常多组件都是自己定义的(这就是为什么界面和体验这么吸引你的原因),可是要灵活的去自己定义组件就必须对手势(也就是各种监听)必须熟悉,能处理好事件之间的关系. 先看一