#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);
Надеюсь, это поможет.