0

我正在尝试创建一个自定义标题,但我不知道如何去做。我一直在研究,但我总是遇到我的日食不会有的风格和东西的问题。问题是我想要一些非常简单的东西。

Android 4.2.2 中的屏幕将是这样的:

http://imageshack.us/a/img838/8840/89ur.png

我认为这是 Android SDK 11 等的默认标头。我一直在测试它更改清单 android:targetSdkVersion 并且我的手机应用程序的外观发生了变化。

问题是不同Android版本之间的兼容性。我已经看到该应用程序在不同的设备上运行,结果如下:

在安卓 4.0.4 中

http://imageshack.us/a/img600/6246/rdhl.png

在安卓 2.3.6 中

http://imageshack.us/a/img836/1599/ezit.png

您可以注意到标题甚至颜色和形状如何变化。如果我创建一个自定义标头,它会在每个设备中以相同的方式显示还是取决于 Android 版本?

我想为每台设备制作一个唯一版本的应用程序,可以吗?如果可能的话,我想要第一张图片的下一个标题,并且在红色矩形内我想插入一个图像。如果我可以将选项菜单(黄色方块)保留在那里,那就更好了。如果由于Android版本的原因无法使用,使用硬件按钮激活是没有问题的。提前致谢!

4

4 回答 4

1

这是不实际的,可能不推荐,但我所做的是在 Android 清单中完全隐藏操作栏/头部,使用:

    <activity
        android:name=".My_Activity_Name"
        android:theme="@android:style/Theme.NoTitleBar" />

然后,在我的活动布局 xml 文件中,我只是自定义构建了一个看起来像操作栏/标题的标题。这是我的一个应用程序中的一个示例:

在此处输入图像描述

这完全在 xml 文件中完成,但它看起来与正确的操作栏/标题一样真实。

编辑

这是我的导航栏 xml 布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="45dp"
    android:background="@drawable/navbar_topxml"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="55dp"
        android:layout_height="fill_parent"
        android:orientation="horizontal"
        android:gravity="center" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/nav_back"
            android:onClick="nav_back" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.99"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/tab_style"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center_vertical"
            android:paddingLeft="5dp"
            android:text="TITLE"
            android:textColor="#888888"
            android:textStyle="bold"
            android:textSize="20sp" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="horizontal"
        android:gravity="center"
        android:paddingLeft="20dp"
        android:paddingRight="10dp" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:orientation="horizontal"
            android:gravity="center" >
            <ImageView
                android:id="@+id/todo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/todo_off"
                android:onClick="todo_toggle" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="10dp"
            android:layout_height="fill_parent"
            android:orientation="horizontal" >
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:orientation="horizontal"
            android:gravity="center" >
            <ImageView
                android:id="@+id/favourite"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/fav_off"
                android:onClick="fav_toggle" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="10dp"
            android:layout_height="fill_parent"
            android:orientation="horizontal" >
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:orientation="horizontal"
            android:gravity="center" >
            <ImageView
                android:id="@+id/done"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/done_off"
                android:onClick="done_toggle" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>
</LinearLayout>
于 2013-08-21T07:56:57.257 回答
1

这是对评论中 n4h1n' 问题的回复。

layout_action_bar.xml:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="46dp"
    android:orientation="horizontal" >

    <FrameLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="5" >

        <ImageView
            android:id="@+id/imageSearch"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/search" />

    </FrameLayout>

    <FrameLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="6" >

        <TextView
            android:id="@+id/textTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textSize="24sp"
            android:textColor="#FF9C00"
            android:text="@string/turipolis" />

    </FrameLayout>

    <FrameLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="5" >

        <ImageView
            android:id="@+id/imageUser"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/user" />

    </FrameLayout>

</LinearLayout>

<View
    android:layout_width="fill_parent"
    android:layout_height="8dp"
    android:background="@drawable/action_bar_shadow" />

在您的活动 XML 中:

<include
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    layout="@layout/layout_action_bar" />
于 2013-08-21T08:17:51.493 回答
1

我会认真推荐 ActionBarSherlock,http: //actionbarsherlock.com/ 。这真的是一个很棒的图书馆。你可以在这里找到它的一些代码演示http://actionbarsherlock.com/download.html,它们的源代码在这里https://github.com/JakeWharton/ActionBarSherlock/tree/master/actionbarsherlock-samples

但是我确实记得谷歌宣布他们已经在http://developer.android.com/tools/support-library/index.html的支持库中将 ActionBar 反向移植到 2.1 。在您计划使用它而不是扩展普通 Activity 类的活动中,您将扩展 ActionBarActivity 类。相同的逻辑在某种程度上适用于 ActionBarSherlock,因为您将扩展 SherlockActivity

于 2013-08-21T09:08:02.690 回答
0

我要做的只是在您的清单中设置一个没有标题栏的主题,并在您的 XML 文件中包含一个自定义布局文件,该文件是您的标题栏。这确保它在每个版本中都是相同的。它的好处是你可以做任何事情。

于 2013-08-21T07:55:59.300 回答