2017-01-03 4 views
0

У меня есть активность новостей с ImageView и TextView с новостным контентом. Я хочу, чтобы содержимое новостей заполнило все пространство.Android-Make TextView, чтобы заполнить все оставшееся пространство в макете

Содержимое новостей заполнило все пространство справа от изображения, поэтому текст был помещен справа от изображения, но под картинкой было свободное место. Я решил поместить ImageView и TextView в разделенную линейную компоновку. Но текст исчез после того, как область, расположенная прямо от изображения, была заполнена.

Проблема отображается here.

Мои вопросы:

  1. Как я могу поместить оставшийся текст под видом изображения?

  2. Как я могу сделать картинку, чтобы поддерживать соотношение высоты и ширины?

Вот код XML:

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

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true"> 

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

     <TextView 
      android:id="@+id/textViewHeaderNews" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/textViewDateNews" 
      android:layout_centerHorizontal="true" 
      android:layout_marginBottom="3dp" 
      android:layout_marginLeft="5dp" 
      android:layout_marginRight="5dp" 
      android:text="header" 
      android:textColor="@color/mycolor" 
      android:textSize="16dp" 
      android:textStyle="bold|italic" /> 

     <LinearLayout 
      android:id="@+id/newslayout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/textViewHeaderNews" 
      android:orientation="horizontal"> 

      <ImageView 
       android:id="@+id/imageViewNews" 
       android:layout_width="165dp" 
       android:layout_height="165dp" 
       android:layout_margin="2dp" 
       android:layout_weight="0" 
       android:scaleType="fitXY" 
       android:src="@drawable/world"/> 

      <TextView 
       android:id="@+id/textViewContentNews" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_marginLeft="2dp" 
       android:layout_marginRight="2dp" 
       android:layout_marginTop="1dp" 
       android:layout_weight="1" 
       android:text="jklasdf as ;AJFWADLHF LAS HFLAF VANLASN: l galgsalgngan ;wafasldwlaf alla lnaf alf lg;aeguewaf hwla hfnalgh wa 
       j;fklasgj;s;nva; alsf las ps z; laszfj alsz vzlxg a lrg z;dnlxfdj glzf ;f glaerzlls az 
       ;asdjk aF{ af[ [D{j as ;as ; wjv a jkn da weq g ; aeskj; g ;eakr;ja r" 
       android:textSize="14dp" /> 
     </LinearLayout> 

     <TextView 
      android:id="@+id/textViewDateNews" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:layout_marginRight="2dp" 
      android:layout_marginTop="2dp" 
      android:text="date" 
      android:textSize="14dp" /> 

     <TextView 
      android:id="@+id/textViewViewsNews" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_below="@+id/newslayout" 
      android:layout_margin="3dp" 
      android:text="views" 
      android:textSize="13dp" /> 

     <TextView 
      android:id="@+id/textViewRating" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:layout_below="@+id/newslayout" 
      android:layout_margin="3dp" 
      android:text="rating" 
      android:textSize="13dp" /> 

     <TextView 
      android:id="@+id/textViewRatingNews" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignTop="@+id/spinnerRatingNews" 
      android:layout_margin="4dp" 
      android:layout_toLeftOf="@+id/spinnerRatingNews" 
      android:text="Գնահատեք." 
      android:textSize="14dp" /> 

     <Spinner 
      android:id="@+id/spinnerRatingNews" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:layout_below="@+id/textViewRating" 
      android:layout_margin="3dp" /> 

    </RelativeLayout> 
</ScrollView> 

ответ

2

Ну его довольно сложно объяснить (для меня во всяком случае). Невозможно сделать это с помощью xml, но вы можете сделать это с помощью кода, я буду ссылаться на сообщение, которое я использовал для достижения того же самого отказа, что и вы. (оберните текст вокруг другого вида).

Read this post

выше нравится то, что я и его имеют довольно хороший resault.

Вы запросили в комментарии, чтобы изменить размер изображения btu, чтобы сохранить его соотношение.

This is a post о теме изменения размера изображения.

сначала проверьте, если изображение больше, чем X, если оно затем изменит его с коэффициентом, соответствующим вашим потребностям.

+0

Thank you. И как заставить ImageView поддерживать соотношение высоты и ширины? –

+0

хорошо, вы жестко закодировали его высоту/ширину, чтобы вы не могли сохранить свое первоначальное соотношение высоты и ширины. вы можете использовать wrap_content. –

+0

Но мне нужны разные изображения для разных новостей, с разной высотой и шириной. Поэтому мне нужно разместить их в моем ImageView, сохраняя их представление. –

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