7

在我的 Android 应用程序中,我隐藏了默认标题栏,引入了 TabView 并在该 TabView 的选项卡下添加了我自己的标题栏。目前,我正在使用 ?android:attr/windowTitleStyle 样式,这使我的新标题栏看起来是灰色和渐变的。它看起来不错,但我的屏幕看起来很灰度。我想通过将此标题栏设置为不同的颜色渐变来增加趣味性。

我在这里看什么?创建我自己的图像并使用它??android:attr/windowTitleStyle 样式似乎会根据自定义标题栏的高度进行扩展;所以我不确定它实际上是一个单一的图像。

我试图在它上面加上一点半透明的 LinearLayout(例如:制作颜色 #800000FF),但是我在这个 LinearLayout 后面的渐变样式消失了。

谢谢你的帮助

更新:

根据我在下面的回答,我发现我可以创建一个定义渐变并使用它的 XML 文件。它在我的布局中的 LinearLayout (titlebar_gradient) 中运行良好。但是,它不适用于最外层的 LinearLayout (background_gradient)。有人能告诉我为什么吗?据我了解, ListView 应该是透明的......

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:background="@drawable/background_gradient"
 >
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="horizontal"
  android:layout_width="fill_parent"
  android:layout_height="47dip"
  android:background="@drawable/titlebar_gradient"
  android:gravity="center">
  <TextView
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_weight="1"
   android:text="Item"
   style="?android:attr/windowTitleStyle"
   android:paddingLeft="5dip"
   android:maxLines="1"
   android:ellipsize="end" />
 </LinearLayout>
    <ListView
     android:id="@+id/android:list"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
  android:paddingTop="10dip"
  android:clickable="false"
    />
 <TextView
     android:id="@+id/android:empty"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
    />
</LinearLayout>
4

1 回答 1

9

我现在明白我的问题了。

我在我的 drawables 文件夹中创建了一个 XML 文件,看起来像这样

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
       <gradient
        android:startColor="#00CC66"
        android:endColor="#009966"
        android:angle="270"/>
    /shape>

在我的工具栏中,我将背景设置为此可绘制对象。

于 2010-08-10T16:02:48.280 回答