在Android中将图像写在图像上

时间:2016-09-23 18:13:03

标签: android

这是我的布局,我试图在图像上写文字。

<?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="wrap_content"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="?android:attr/selectableItemBackground"
    android:padding="@dimen/tile_padding">

    <ImageView
        android:id="@+id/thumbnail"
        android:layout_width="match_parent"
        android:layout_height="@dimen/tile_height"
        android:scaleType="fitXY"
        />

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="160dp"
        android:alpha="0.30"
        android:background="@color/dark_grey"
        />

    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="@dimen/tile_height"
        android:layout_gravity="center"
        android:gravity="bottom|end"
        android:textColor="@color/white"
        android:textSize="22sp"
        />


</RelativeLayout>

要使图像在图像上可见,我在原始图像上使用alpha = 0.30绘制更多图像。

我想在原始图像上不完全绘制其他图像,但只绘制文本的部分。

4 个答案:

答案 0 :(得分:1)

尝试以下布局

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?android:attr/selectableItemBackground"
    android:padding="@dimen/tile_padding">

    <ImageView
        android:id="@+id/thumbnail"
        android:layout_width="match_parent"
        android:layout_height="@dimen/tile_height"
        android:scaleType="fitXY" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:alpha="0.30"
        android:background="@color/dark_grey"
        android:gravity="bottom|end">

        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="@dimen/tile_height"
            android:layout_gravity="center"
            android:textColor="@color/white"
            android:textSize="22sp" />
    </LinearLayout>
</FrameLayout>

答案 1 :(得分:0)

如果您只需要使文本区域变暗,则不需要额外的ImageView。 TextView还有android:background

如果您真的想在TextView后面使用ImageView,请将ImageView与TextView对齐。

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:alpha="0.30"
    android:background="@color/dark_grey"
    android:layout_alignBottom="@+id/title"
    android:layout_alignTop="@+id/title"
    />

答案 2 :(得分:0)

你需要这样的事情:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?android:attr/selectableItemBackground"
            android:padding="10dp">

<ImageView
    android:id="@+id/thumbnail"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:background="@android:color/black"
    android:scaleType="fitXY"
    />

<TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@id/thumbnail"
    android:layout_alignLeft="@id/thumbnail"
    android:layout_alignTop="@id/thumbnail"
    android:layout_gravity="center"
    android:gravity="bottom|end"
    android:text="Sample"
    android:textColor="@color/white"
    android:textSize="22sp"
    />

<ImageView
    android:layout_width="match_parent"
    android:layout_height="160dp"
    android:layout_alignBottom="@id/title"
    android:layout_alignLeft="@id/title"
    android:layout_alignRight="@id/title"
    android:layout_alignTop="@id/title"
    android:alpha="0.40"
    android:background="@android:color/holo_blue_bright"
    />

 </RelativeLayout>

主要是您在layout_alignX工作 - 对于&#39; x&#39;左,右,上,下。

答案 3 :(得分:0)

为什么要在图像视图上重叠textview,这非常复杂。如果要求在图像上显示任何文本,请按下按钮并设置atttributes 1.background作为您所需的图像和文本