0

我的应用程序有一个自定义标题栏。



我编辑了 values/styles.xml 以使我的标题栏为 45dp。(以下)

<style name="AppBaseTheme" parent="android:Theme.Light">

    <!--
        Theme customizations available in newer API levels can go in
        res/values-vXX/styles.xml, while customizations related to
        backward-compatibility can go here.
    -->
</style>

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
    <!-- All customizations that are NOT specific to a particular API-level can go here. -->

</style>


<style name="CustomTheme" parent="AppTheme">
    <item name="android:windowTitleSize">45dp</item>
</style>



这是我的自定义标题栏布局(下)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="@drawable/background_gradient"
android:gravity="center_vertical" >

<ImageView 
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:paddingLeft="7dp"
    android:src="@drawable/info_icon"
    android:layout_alignParentLeft="true" >
</ImageView>

<ImageView
    android:layout_height="wrap_content"
    android:paddingRight="7dp"
    android:layout_width="wrap_content"
    android:src="@drawable/info_icon"
    android:layout_alignParentRight="true"
>

</ImageView>

</RelativeLayout>



这是我为上面的 RelativeView 设置的背景颜色的可绘制对象

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

<gradient
    android:type="linear"
    android:centerX="49%"
    android:startColor="#FFFF6417"
    android:centerColor="#FFffffff"
    android:endColor="#FFFF7308"
    android:angle="315"/>

</shape>



安卓清单文件:

android:theme="@style/CustomTheme"

在每项活动中,我都在这样做

super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.notice_main);

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

我相信我所做的一切都是正确的。

然而我得到了这个。我不知道为什么。

在此处输入图像描述

在此处输入图像描述

4

3 回答 3

0

更好地在值的 style.xml 中创建以下代码

<style name="WindowTitleBackground">     
    <item name="android:background">@drawable/titlebar_backgrnd</item>   
</style>

以及在theme.xml中的以下代码值

<style name="customTheme" parent="android:Theme">
    <item name="android:windowTitleSize">30dip</item> 
    <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item>
</style>
于 2013-11-21T07:30:27.120 回答
0

试试这个作为自定义标题栏的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" 
    android:background="@drawable/background_gradient">

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/info_icon"
        android:src="@drawable/info_icon" >
    </ImageView>

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/info_icon" >
    </ImageView>

</LinearLayout>
于 2013-11-14T04:45:40.343 回答
0

您需要使活动全屏,意味着没有默认标题栏,然后设置自定义标题栏。通过这样做,灰色部分将被删除

 requestWindowFeature(Window.FEATURE_NO_TITLE);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.notice_main);

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

在此之后,您可以正确设置左右边距的填充

于 2013-11-14T04:49:16.047 回答