2013-05-24 4 views
0

Как бы поставить textview ниже imageview так, чтобы text был центрирован? Если я использую relative layout, единственный способ - android:layoutBelow, но вы не можете выровнять по центру от imageview так же, как вы можете совместить с right или left. Если я не пропустил что-тоЦентр Текст под изображением

Благодаря

ответ

1

Осмотрев ваши комментарии у меня есть лучшее понимание того, что вы пытаетесь достичь. Это использует дополнительный просмотр, но позволяет группировать текстовое изображение в виде изображения.

RelativeLayout в верхнем левом углу:

<?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" > 

    <!-- place this layout anywhere and the imageview and textview will follow. --> 
    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/imageView1" 
      android:layout_centerHorizontal="true" 
      android:gravity="center_horizontal" 
      android:text="TextViewTextViewTextViewTextViewTextView" /> 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:layout_centerHorizontal="true" 
      android:src="@drawable/ic_launcher" /> 
    </RelativeLayout> 

</RelativeLayout> 

RelativeLayout в центре экрана:

<?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" > 

    <!-- place this layout anywhere and the imageview and textview will follow. --> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/imageView1" 
      android:layout_centerHorizontal="true" 
      android:gravity="center_horizontal" 
      android:text="TextViewTextViewTextViewTextViewTextView" /> 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:layout_centerHorizontal="true" 
      android:src="@drawable/ic_launcher" /> 
    </RelativeLayout> 

</RelativeLayout> 

RelativeLayout в нижнем правом углу:

<?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" > 

    <!-- place this layout anywhere and the imageview and textview will follow. --> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/imageView1" 
      android:layout_centerHorizontal="true" 
      android:gravity="center_horizontal" 
      android:text="TextViewTextViewTextViewTextViewTextView" /> 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:layout_centerHorizontal="true" 
      android:src="@drawable/ic_launcher" /> 
    </RelativeLayout> 

</RelativeLayout> 

Как вы можете видеть в любом месте вы помещаете внутренний RelativeLayout в ImageView и TextView.

+0

Спасибо, но это не сработало – Snake

+0

Прочитав то, что вы ищете, я переписал свой ответ. –

+0

Спасибо, но этот Относительный взгляд фиксирует расположение в верхнем левом углу экрана. Я не хочу этого так – Snake

1

Попробуйте объявить свой TextView следующим образом:

<TextView 
android:layout_width="0dp" 
android:layout_align="wrap_content" 
android:layout_alignLeft="@+id/id_of_imageview" 
android:layout_alignRight="@+id/id_of_imageview" 
android:layout_below="@+id/id_of_imageview" 
android:gravity="center_horizontal" /> 
+0

Это работает, когда текст меньше ширины изображения. Если он больше, он становится разделенным на несколько строк. +1 для получения половины работы :) – Snake

+0

Затем вам необходимо добавить эти свойства. то есть 'android: singleLine =" true "и' android: ellipsize = "end" ' – Praveen

+0

Это не исправить проблему, все, что она сделала, - это усечение текста путем помещения ....... – Snake

0

с помощью андроида: drawableLeft свойства, заданные изображения в TextView, а также набор текста.

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableLeft="@drawable/ic_launcher" 
    android:text="Hello" 
    android:gravity="center_vertical" 
    android:paddingLeft="5dp" 
    /> 
+0

Он хочет текс ниже, поэтому используйте 'android: drawableTop = ...' и 'android: gravity =" center_horizontal "вместо – Karakuri

0

попробовать этот

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableLeft="@drawable/ic_launcher" 
    android:drawableRight="@drawable/ic_launcher" 
    android:drawableTop="@drawable/ic_launcher" 
    android:drawableBottom="@drawable/ic_launcher" 
    android:text="Hello" 
    android:gravity="center" 
    android:paddingLeft="10dp" 
    /> 

================================= или

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableTop="@drawable/ic_launcher" 
    android:text="Hello" 
    android:gravity="center" 
    android:paddingLeft="10dp" 
    /> 
+1

вы должны отредактировать свой ответ. не отправляйте два ответа на один вопрос. – Praveen

+0

Я хочу видеть изображение, потому что я хочу, чтобы человек мог на нем нажать – Snake

0

Это позволит решить обе ваши проблемы чтения на комментарий от Text length, используйте android:ems в тексте, которые определяют основную длину его

<TextView 
android:layout_width="0dp" 
android:layout_align="wrap_content" 
android:layout_alignLeft="@+id/id_of_imageview" 
android:layout_alignRight="@+id/id_of_imageview" 
android:layout_below="@+id/id_of_imageview" 
android:gravity="center_horizontal" 
android:ems="10" /> 
+0

nope it didnt ... sorry – Snake