覆盖Android上的ImageView

时间:2013-12-27 16:56:28

标签: android imageview overlay

所以我有一个来自网络的图像列表,我不知道它们是哪种颜色,我想在ImageView上放置一个文本。

我的想法是将ImageView,一个带有透明度渐变的图像叠加层放在ImageView及其上方的文本上。我想模仿这种行为:

enter image description here

无论如何都是通过XML来做到这一点吗?

4 个答案:

答案 0 :(得分:20)

当您为列表项目编写XML时,您在getView(...)编写的任何ListAdapter中都会夸大其词,您肯定可以这样做。

列表项的内容如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

  <ImageView
    android:layout_width="320dp"
    android:layout_height="240dp"
    android:background="#ACACAC"/>

  <RelativeLayout
    android:layout_width="320dp"
    android:layout_height="240dp"
    android:background="@drawable/gradient">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Here is your text"
        android:textColor="#000000"
        android:layout_alignParentBottom="true"/>

  </RelativeLayout>

</RelativeLayout>

然后创建可绘制/渐变。为此,您可以从here回收答案。

答案 1 :(得分:4)

感谢 adityajones 我设法到达那里:) 因此,虽然这是我的正确答案,但我会将其标记为正确答案!

<?xml version="1.0" encoding="utf-8"?>

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:scaleType="centerCrop"
    android:src="@drawable/image" />

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:background="@drawable/gradient_image" >

    <TextView
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_margin="6dp"
        android:layout_marginBottom="18dp"
        android:shadowColor="#000"
        android:shadowRadius="7.0"
        android:text="This is some random text"
        android:textColor="@color/white"
        android:textSize="22sp" />
</RelativeLayout>

答案 2 :(得分:2)

我使用FrameLayout或RelativeLayout。你添加的第一个视图应该是背景ImageView,然后显然你需要一些TextViews和其他ImageViews [或按钮,或ImageButtons等]

看起来像一个合理的布局:背景图片,然后是每个角落的一个额外视图。

对于渐变,你可能想要一个单独的布局/视图,底部有一个渐变可绘制作为背景,虽然我可以想象你可以通过将一个TextView的背景设置为梯度。

答案 3 :(得分:0)

您不必使用渐变可绘制文件或在xml中设置它。 您可以使用GradientDrawable类实际执行此操作,如相关问题(Create a radial gradient programmatically)中所述,然后将其设置为覆盖ImageView的布局的背景,这使您能够使用不同的颜色和方向< / p>