Android的LinearLayout渐变背景

我无法对LinearLayout应用渐变背景。

这应该是相对简单的,因为我已经阅读,但它似乎并没有工作。 有关参考资料,我正在开发2.1-update1。

header_bg.xml:

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:angle="90" android:startColor="#FFFF0000" android:endColor="#FF00FF00" android:type="linear"/> </shape> 

main_header.xml:

 <?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="50dip" android:orientation="horizontal" android:background="@drawable/header_bg"> </LinearLayout> 

如果我将@ drawable / header_bg更改为一种颜色 – 例如#FF0000,它可以很好地工作。 我在这里错过了很明显的东西吗

    7 Solutions collect form web for “Android的LinearLayout渐变背景”

    好吧,我设法解决这个使用select器。 见下面的代码:

    main_header.xml:

     <?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="50dip" android:orientation="horizontal" android:background="@drawable/main_header_selector"> </LinearLayout> 

    main_header_selector.xml:

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <gradient android:angle="90" android:startColor="#FFFF0000" android:endColor="#FF00FF00" android:type="linear" /> </shape> </item> </selector> 

    希望这可以帮助有同样问题的人。

    也有可能有第三种颜色(中心)。 和不同种类的形状。

    例如在drawable / gradient.xml中:

     <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#000000" android:centerColor="#5b5b5b" android:endColor="#000000" android:angle="0" /> </shape> 

    这给你黑 – 灰 – 黑(从左到右)这是我最喜欢的黑暗背景atm。

    请记住在布局xml中添加gradient.xml作为背景:

     android:background="@drawable/gradient" 

    也可以旋转,具体如下:

    angular= “0”

    给你一个垂直线

    angular= “90”

    给你一个水平线

    可能的angular度是:

    0,90,180,270。

    也有几种不同的形状:

    机器人:形状=“矩形”

    圆形:

    机器人:形状=“椭圆形”

    可能还有一些。

    希望它有帮助,欢呼!

    尝试删除android:gradientRadius =“90”。 这是对我有用的一个:

     <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:startColor="@color/purple" android:endColor="@color/pink" android:angle="270" /> </shape> 

    我的问题是.xml扩展名没有添加到新创build的XML文件的文件名。 添加.xml扩展名解决了我的问题。

    在XML可绘制文件中:

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <gradient android:angle="90" android:endColor="#9b0493" android:startColor="#38068f" android:type="linear" /> </shape> </item> </selector> 

    在你的布局文件中:android:background =“@ drawable / gradient_background”

      <?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/gradient_background" android:orientation="vertical" android:padding="20dp"> ..... </LinearLayout> 

    在这里输入图像说明

    我会检查你的渐变颜色的alpha通道。 对我来说,当我testing我的代码时,我的alpha通道设置了错误的颜色,它不适合我。 一旦我得到了alpha通道设置它一切工作!

    我不知道这是否会帮助任何人,但我的问题是我试图设置渐变到ImageView的“src”属性,如下所示:

     <ImageView android:id="@+id/imgToast" android:layout_width="wrap_content" android:layout_height="60dp" android:src="@drawable/toast_bg" android:adjustViewBounds="true" android:scaleType="fitXY"/> 

    不是100%确定为什么这不起作用,但现在我改变它,并把绘制在ImageView的父母,这是一个RelativeLayout在我的情况,“背景”属性,如下所示:(这工作成功)

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:id="@+id/custom_toast_layout_id" android:layout_height="match_parent" android:background="@drawable/toast_bg">