开发者

scaled ImageView placement in RelativeLayout

I need to place three elements inside RelativeLayout:

  • scaled image in ImageView on the right side with the top and bottom margins
  • TextEdit in the left top corner
  • LinearLayout in the rest of the space (below the title and to the left of the image)

The problem happens when the image is scaled in ImageView. I want it fits the entire parent's height considering margins. After scaling uniformly to fit the parent's height I want ImageView wraps the image's width. But as the result there are some unfilled horizontal spaces in ImageView.

The problem looks similar to one solved here. But in my case all tests with android:adjustViewBounds and android:scaleTypes didn't work. I suppose there is a problem because of margins and RelativeLayout use.

Here is th开发者_如何学Ce extract from my xml file:

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

Has anyone met this problem and found the answer?


this is what i have come up with

scaled ImageView placement in RelativeLayout

and this is the 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>

let me know for improvements

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜