如何在图像视图上放置高亮透明文本?

时间:2015-04-10 09:34:05

标签: android xml textview transparent

我有这个观点:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="3dp" >

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignBottom="@+id/description" />

    <TextView
        android:id="@+id/description"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#80000000"
        android:gravity="right"
        android:padding="10dp"

        android:textColor="#fff"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
         />
</RelativeLayout>

我需要让透明的文字视图像阴影一样,这意味着,我想让它从底部变暗,从顶部变浅,从底部变暗到顶部, 但我的代码是整个文本视图的相同颜色 但我需要让它像阴影,从底部到较浅到顶部较暗,我的颜色是Monotone#80000000我想让它突出,像阴影

我该怎么做?

1 个答案:

答案 0 :(得分:1)

XML:

您只需创建一个可绘制资源(请参阅下面的示例),并将其添加到您为ListItem创建的布局中。

drawable(在res \ drawable文件夹中 - 无论如何命名 - listgrad.xml for ex)可能如下所示:

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

您可以将它添加到列表项的布局(您为此定义的layout.xml文件),例如此代码段:

<TextView
        android:id="@+id/ranking_order"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/list_grad"
        />
...  

JAVA:

TextView secondTextView = new TextView(this);
Shader textShader=new LinearGradient(0, 0, 0, 20,
        new int[]{Color.GREEN,Color.BLUE},
        new float[]{0, 1}, TileMode.CLAMP);
secondTextView.getPaint().setShader(textShader);