Масштабированное размещение ImageView в RelativeLayout
Мне нужно поместить три элемента внутри RelativeLayout
:
- масштабированное изображение в
ImageView
на правой стороне с верхним и нижним полями TextEdit
в левом верхнем углуLinearLayout
в остальном пространстве (под заголовком и слева от изображения)
Проблема возникает, когда изображение масштабируется в ImageView
, Я хочу, чтобы он соответствовал росту всех родителей, учитывая поля. После равномерного масштабирования, чтобы соответствовать росту родителей, я хочу ImageView
оборачивает ширину изображения. Но в результате появляются незаполненные горизонтальные пробелы в ImageView
,
Проблема выглядит аналогично той, что решена здесь. Но в моем случае все тесты с android:adjustViewBounds
а также android:scaleTypes
не работал Я предполагаю, что есть проблема из-за полей и использования RelativeLayout.
Вот выдержка из моего XML-файла:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@id/albums_slideshow"
android:adjustViewBounds="true"
android:layout_marginTop="71.33dp"
android:layout_marginBottom="88.67dp"
android:scaleType="centerInside"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/music_img_album_noimage"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/music_module_screen_title_margin_left"
android:layout_marginTop="@dimen/music_module_screen_title_margin_top"
android:text="@string/music_string"
style="@style/ScreenTitleFont"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"/>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignTop="@id/albums_slideshow"
android:layout_toLeftOf="@id/albums_slideshow">
...
</LinearLayout>
</RelativeLayout>
Кто-нибудь сталкивался с этой проблемой и нашел ответ?
1 ответ
Это то, что я придумал
и это XML
<?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="fill_parent"
android:orientation="vertical"
>
<TextView android:id="@+id/album_text"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentLeft="true" android:layout_alignParentTop="true"
android:layout_marginLeft="20dip" android:layout_marginTop="20dip"
android:text="music string" android:background="@android:color/white"
/>
<LinearLayout android:id="@+id/albums_list"
android:layout_width="wrap_content" android:layout_height="fill_parent"
android:layout_alignParentLeft="true" android:layout_below="@id/album_text"
android:layout_marginTop="71.33dp"
android:orientation="vertical" android:background="@android:color/white"
>
<TextView android:id="@+id/album_text"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentLeft="true" android:layout_alignParentTop="true"
android:layout_marginLeft="20dip" android:layout_marginTop="20dip"
android:text="albums list"
/>
</LinearLayout>
<ImageView android:id="@+id/albums_slideshow"
android:layout_height="fill_parent" android:layout_width="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginBottom="88.67dp"
android:layout_alignTop="@id/albums_list"
android:scaleType="centerInside"
android:layout_centerInParent="true" android:background="@android:color/darker_gray"
android:src="@drawable/icon"/>
</RelativeLayout>
дайте мне знать для улучшения