Android: Как сделать высоту TableRow и высоту ImageView равными ImageView scr, которые можно рисовать

#android #android-layout

#Android #android-макет

Вопрос:

У меня проблема с тем, чтобы сделать высоту TableRow и ImageView равной высоте, которую можно нарисовать ImageView scr.

Может ли кто-нибудь помочь мне это исправить?

  <?xml version="1.0" encoding="utf-8"?>
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent" android:layout_height="match_parent"
        android:stretchColumns="*">
        <TableRow android:gravity="top" android:layout_weight="1" >
            <TextView android:text="Some text" 
                android:id="@ id/textView1" android:gravity="top" 
                android:layout_width="wrap_content" android:layout_height="wrap_content" />
        </TableRow>
        <TableRow android:gravity="top|center" >
            <ImageView android:id="@ id/imageView1"
                android:layout_height="wrap_content" android:src="@drawable/burger_king_image"
                android:layout_width="wrap_content" />
        </TableRow>
    </TableLayout>
  

Комментарии:

1. установка android: layout_height в «wrap_content» должна сделать это за вас. Можете ли вы опубликовать изображение того, как выглядит представление с помощью этого XML-кода? Не помешало бы, если бы вы могли подробнее рассказать о том, как вы пытаетесь заставить это выглядеть.

Ответ №1:

Я не тестировал это, однако похоже, что в ImageView есть опция setAdjustViewBounds, которая может делать все, что вам нужно:

     ImageView imageview = (ImageView) findViewById(R.id.imageView1);
    imageView.setAdjustViewBounds(true);
  

Если этого недостаточно, вы можете получить высоту для рисования примерно таким образом:

     Drawable image = getResources().getDrawable(R.drawable.burger_king_image);
    int height = image.getIntrinsicHeight();
  

Затем вы можете установить размер вашего ImageView следующим образом (при условии, что представление содержимого уже установлено для этого ресурса):

     ImageView imageview = (ImageView) findViewById(R.id.imageView1);
    imageView.setMaxHeight(height);
    imageView.setAdjustViewBounds(true);
  

Надеюсь, это поможет.