2013-10-09 7 views
0

Я хочу, чтобы мой текст автоматически настраивал любую ширину изображения. Я хочу получить изображение ниже. В основном одинаковое изображение и текст, но различная ориентация. Это сетки изображений. Я просто возвращаю макет. Как я могу справиться с этим? благодаряШирина TextView, динамически вставляемая в ширину ImageView

enter image description here

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/card_list" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:padding="7dp" 
    android:layout_margin="10dip" 
    android:background="@drawable/layout_bg" 
    android:orientation="vertical"> 
<!-- android:background="@drawable/layout_bg"--> 

    <ImageView 
     android:id="@+id/image" 
     android:src="@drawable/content_picture" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:adjustViewBounds="true" 
     android:contentDescription="Desc" 
     android:scaleType="centerCrop"/> 


    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" > 

     <TextView 
      android:id="@+id/btnItemName" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:alpha=".7" 
      android:background="#00000000" 
      android:text="Order" /> 

    </RelativeLayout> 

</FrameLayout> 

Update:

Я включил фон: android:background="#00000000" просто чтобы показать, что ширина TextView должна соответствовать к ImageView-х. Текст должен накладываться на верх изображения. Я использую Universal-Image-Loader, и я думаю, что получить размер изображения трудно, так как он загружается с фона .

ответ

2

Чтобы TextView обложил над ImageView вы можете иметь свой макет, как этот

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<ImageView 
    android:id="@+id/imgView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/parl" /> 

<TextView 
    android:id="@+id/txtview" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@id/imgView" 
    android:layout_alignLeft="@id/imgView" 
    android:layout_alignRight="@id/imgView" 
    android:layout_alignTop="@id/imgView" 
    android:layout_margin="1dp" 
    android:gravity="bottom" 
    android:text="textView" 
    android:textColor="@android:color/black" /> 

    </RelativeLayout> 
+0

Я попробовал ваш пример сэр, но он не накладывался на изображение. Он просто расположен внизу. – rahstame

+0

Хорошо. Насколько я понимаю, вы хотите выровнять текстовое представление на основе ширины изображения. Если это так, это будет намного проще, с кодом, а не в XML-файле. Получите ширину ImageViews с помощью getwidth и установите ее в Textview с помощью setWidth. Pls игнорирует мой XML-файл. Я не знал, что он должен был наложить. – prijupaul

+0

Я обновил свой вопрос, у вас есть точка, но я использую Universal-Image-Loader и загружаю изображения в фоновом режиме, поэтому текстовое представление может получить нулевой указатель относительно размера, так как изображение все еще остается downlaoded. – rahstame

1

Используйте Relative Layout и дать атрибуты ImageView

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

    <ImageView 
     android:id="@+id/img" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/txt" 
     android:layout_alignLeft="@+id/txt" 
     android:layout_alignRight="@+id/txt" 
     android:src="@drawable/ic_launcher" /> 

    <TextView 
     android:id="@+id/txt" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:text="Hi how are you" /> 

</RelativeLayout> 
+0

Эти изображения представляют собой одно изображение и текст, например, в различной ориентации. Можете ли вы показать более полный пример сэр. спасибо – rahstame

+0

Я не получил ваш вопрос точно, я буду читать еще раз –

+0

в том же изображении u есть текст под изображением? –

0

Вы можете сделать что-то вроде этого

<Button 
    android:id="@+id/buttonok" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@null" 
    android:drawableTop="@drawable/ic_launcher" 
    android:text="OK" /> 
0

Попробуйте следующее:

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

    <ImageView 
    android:id="@+id/image" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_launcher" /> 

    <TextView 
    android:id="@+id/text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/image" 
    android:layout_alignRight="@+id/image" 
    android:layout_below="@+id/image" 
    android:text="Hi how are you" /> 

</RelativeLayout> 
Смежные вопросы