2016-09-23 2 views
0

Это мой макет, где я пытаюсь написать текст поверх изображения.Написание текста над изображением на 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> 

Чтобы сделать текст видимым на картинке, я рисую больше изображений на оригинальном изображении с альфа = 0,30.

Я хочу нарисовать другое изображение не полностью на исходном изображении, а только на части, где нарисован текст.

+0

Нарисуйте темный шрифт и установите высоту? – MatejMecka

+0

Я хочу установить высоту второго изображения, равного textview –

ответ

0

Вам не нужен дополнительный ImageView, если вам нужно только затемнить область текста. TextView также имеет android:background.

Если вы действительно хотите ImageView за TextView, совместите 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" 
    /> 
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> 
+0

Спасибо за ответ. Он отображает текст снизу и второе изображение (с 0,30) сверху. –

+0

@DeveshAgrawal Glad !!! Это помогло вам. Вы можете принять мой ответ, если это вам помогло :) – Nikhil

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 - для 'х' слева, справа, сверху, снизу.

0

Почему вы собираетесь перекрываться TextView на изображении просмотреть его очень complex.If вашего требования, чтобы показать текст на кнопке изображения тека и установить аттрибуты 1.background в качестве необходимого изображения и текста, как то, что вы хотите

Смежные вопросы