Scale background image to wrap content of layout

前端 未结 9 1837
执笔经年
执笔经年 2020-12-23 17:45

I have a layout that contains some text fields and has a background image that\'s displayed at the top of my activity. I\'d like the background image to scale to wrap the c

相关标签:
9条回答
  • 2020-12-23 18:01

    Simplest solution:

    ic_background.xml

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:drawable="@android:color/white" />
    
        <item>
            <bitmap
                android:gravity="center"
                android:src="@drawable/ic_background_image" />
        </item>
    
    </layer-list>
    

    & Then

    android:background="@drawable/ic_background"
    
    0 讨论(0)
  • 2020-12-23 18:05

    I think I've done something similar to this in the past, try playing with the gravity setting in your image view, I think one of them should do what you're after.

    0 讨论(0)
  • 2020-12-23 18:05

    I have not tried it, but if you set the background image dynamically on the onCreate that might work. The size of the layout should already be set.

    0 讨论(0)
  • 2020-12-23 18:10

    Work with RealtiveLayout (no mandatory but instead of FrameLayout and use android:scaleType="fitXY". Move the imageView to RealtiveLayout which contains the textviews android:id="@+id/HeaderList" and unset the background android:background="@drawable/header" at this level.

    <?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 
             android:id="@+id/principal"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:background="@drawable/header" >
    
         <RelativeLayout 
             android:layout_width="fill_parent"
             android:id="@+id/HeaderList" 
             android:layout_gravity="top"
             android:layout_height="wrap_content" >  
    
    
             <ImageView
                 android:id="@+id/backImg"
                 android:layout_width="fill_parent"
                 android:layout_height="fill_parent"
                 android:layout_centerInParent="true"
                 android:adjustViewBounds="true"
                 android:background="@color/blancotransless"
                 android:src="@drawable/header"
                 android:scaleType="fitXY" >
             </ImageView>
    
                 <TextView 
                     android:layout_height="wrap_content"
                     android:layout_width="wrap_content" 
                     android:id="@+id/NameText"
                     android:text="John Doe" 
                     android:textColor="#FFFFFF"
                     android:textSize="30sp" 
                     android:layout_alignParentLeft="true"
                     android:layout_alignParentTop="true" 
                     android:paddingLeft="4dp"
                     android:paddingTop="4dp" 
                     />
                 <TextView 
                     android:layout_height="wrap_content"
                     android:layout_width="wrap_content" 
                     android:textColor="#FFFFFF"
                     android:layout_alignParentLeft="true" 
                     android:id="@+id/HoursText"
                     android:text="170 hours" 
                     android:textSize="23sp"
                     android:layout_below="@+id/NameText" 
                     android:paddingLeft="4dp" 
                     />
             </RelativeLayout> 
          </RelativeLayout>
    

    More or less it should work!

    0 讨论(0)
  • 2020-12-23 18:14

    I had the same problem (I think), and the only solution I could find was this:

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >
    
        <View
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/some_image"
            android:layout_alignTop="@+id/actual_content"
            android:layout_alignBottom="@id/actual_content"
            android:layout_alignLeft="@id/actual_content"
            android:layout_alignRight="@id/actual_content"
            />
    
        <LinearLayout
            android:id="@id/actual_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            >
    
           <!-- more stuff ... -->
    
        </LinearLayout>
    
    </RelativeLayout>
    
    0 讨论(0)
  • 2020-12-23 18:20

    Create a drawable xml, say mybackground.xml

    <?xml version="1.0" encoding="utf-8"?>
    <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
        android:src="@drawable/header"
        android:gravity="fill" />
    

    Then in your RelativeLayout in the first code snippet use

    android:background="@drawable/mybackground"
    
    0 讨论(0)
提交回复
热议问题