android 修改窗口标题,android自定义窗口标题示例分享

本文档详细介绍了如何在Android应用中自定义窗口标题,包括创建title.xml布局文件,设计rectangle.xml背景,修改activity代码以应用自定义标题,以及解决标题与界面的间距问题。此外,还涉及到对Android系统主题样式的理解与重写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、建好项目之后在它的layout文件夹下创建一个title.xml文件,作为自定义窗口标题的文件。

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="horizontal" >

android:layout_width="wrap_content"

android:layout_height="match_parent"

android:text="@string/hello_world"

android:textColor="#FF00FF"

/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:onClick="add"

android:text="添加" />

2、在res/drawable文件下建立rectangle.xml文件,为窗口应用上渐变效果。

android:shape="rectangle" >

android:angle="270"

android:endColor="#1DC9CD"

android:startColor="#A2E0FB"/>

android:left="2dp"

android:top="2dp"

android:right="2dp"

android:bottom="2dp" />

3、布局文件:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >

android:id="@+id/button1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_alignParentTop="true"

android:text="Button" />

4、通过activity后台代码进行自定义窗口设置。

package com.example.customertitle;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

import android.view.Window;

import android.widget.Toast;

//自定义标题

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 1.设置使用自定义窗口

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

setContentView(R.layout.activity_main);

// 2.给窗口引入自定义标题的xml界面文件

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);

}

public void add(View v) {

Toast.makeText(this, "按钮被点击", Toast.LENGTH_LONG).show();

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

5、部署项目,可以显示自定义的窗口标题。可是自定义的窗口标题距离界面左右两端有一点距离,并没有完全覆盖。为了解决这一个问题,需要覆盖android的窗口标题。下面是android窗口标题的源码。

android:orientation="vertical"

android:fitsSystemWindows="true">

android:layout_width="match_parent"

android:layout_height="?android:attr/windowTitleSize"

style="?android:attr/windowTitleBackgroundStyle">

android:layout_width="match_parent"

android:layout_height="0dip"

android:layout_weight="1"

android:foregroundGravity="fill_horizontal|top"

android:foreground="?android:attr/windowContentOverlay" />

android:attr/windowTitleSize

android:attr/windowTitleBackgroundStyle

android:attr/windowContentOverlay

上述属性的值在android-sdk-windows\platforms\android-8\data\res\values下的themes.xml文件中定义:

@android:drawable/title_bar_shadow

25dip

@android:style/WindowTitleBackground

@android:style/WindowTitleBackground样式在android-sdk-windows\platforms\android-8\data\res\values下的styles.xml文件中定义:

@android:drawable/title_bar

通过上述可以知道android的主题样式,现在需要继承重写它的样式,代码如下

@drawable/color

50dp

@style/textViewBg

@drawable/rectangle

颜色值的定义

CustomerTitle

Settings

自定义标题

#00000000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值