透明渐变问题

时间:2016-11-08 11:15:03

标签: android transparent linear-gradients

我在FrameLayout中使用谷歌地图片段进行布局。此外,我将新视图放在具有渐变背景的地图上。 布局:

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

    <com.google.android.gms.maps.MapView
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <View
        android:id="@+id/fadeTop"
        android:layout_width="match_parent"
        android:layout_height="@dimen/fade_height"
        android:layout_gravity="top"
        android:background="@drawable/list_fade_top"/>
    <include layout="@layout/top_line_mid_gray"/>

</FrameLayout>

list_fade_top:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <gradient
        android:angle="90"
              android:startColor="@color/fade_start_color"
              android:centerColor="@color/fade_center_color"
              android:endColor="@color/fade_end_color"
        android:type="linear"/>
</shape>
  1. 开始/结束和居中颜色。此渐变用2条光线绘制:
  2. <color name="fade_start_color">#00000000</color> <color name="fade_center_color">#4f000000</color> <color name="fade_end_color">#ff000000</color> enter image description here

    1. 开始/结束和居中颜色。此渐变使用1条光线绘制:
    2. <color name="fade_start_color">#00000000</color> <color name="fade_center_color">#6f000000</color> <color name="fade_end_color">#ff000000</color> enter image description here

      1. 没有中心色的渐变的相同行为:

        <gradient
            android:angle="90"
                  android:startColor="@color/fade_start_color"
                  android:endColor="@color/fade_end_color"
            android:type="linear"/>
        
      2. enter image description here

        如何从黑色(或半透明黑色)到完全透明的平滑线性渐变?

        我尝试了硬件加速开/关,&#39; getWindow()。setFormat(PixelFormat.RGBA_8888);&#39;什么都没有帮助我。

        更新1 我在github上创建了一个简单的应用程序。 https://github.com/ralexey/TestApp 只是一个带有彩色背景和渐变的活动。

2 个答案:

答案 0 :(得分:1)

在渐变android:centerY="y%p"中添加此行 它可能对你有帮助

<?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:centerY="25%p"
        android:centerColor="@color/fade_center_color"
        android:endColor="@color/fade_end_color"
        android:startColor="@color/fade_start_color"
        android:type="linear"
        android:dither="true"
        android:useLevel="true" />

</shape>

答案 1 :(得分:0)

尝试以下代码:

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

    <item>
        <shape android:shape="rectangle" android:padding="10dp">
            <gradient
                android:startColor="#00000000"
                android:centerColor="#6f000000"
                android:endColor="#ff000000"
                android:angle="90" />

        </shape>
    </item>

</layer-list>