I see many applications that use a full-screen image as background. This is an example:
I want to use this in a project, the best way I've found so far to do this is to use an image with a large size, put it in a ImageView
and use android: adjustViewBounds="true"
to adjust the margins
The problem is that if a screen with a very high resolution, the image falls short.
Another option I thought of is to use the image in a FrameLayout
, with match_parent
in width
and height
as background... this stretches the image, but I think the result is not very good.
How would you do it?
Working. you should tryout this:
The easiest way:
Step 1: Open AndroidManifest.xml file
You can see the file here!
Step 2: Locate
android:theme="@style/AppTheme" >
Step 3: Change to
android:theme="@style/Theme.AppCompat.NoActionBar" >
Step 4: Then Add ImageView & Image
Step 4: That's it!
Add
android:background="@drawable/your_image"
inside your Relativelayout/Linearlayout Worked.There are several ways you can do it.
Option 1:
Create different perfect images for different dpi and place them in related drawable folder. Then set
android:background="@drawable/your_image
Option 2:
Add a single large image. Use FrameLayout. As a first child add an
ImageView
. Set the following in your ImageView.It's been a while since this was posted, but this helped me.
You can use nested layouts. Start with a RelativeLayout, and place your ImageView in that.
Set height and width to match_parent to fill the screen.
Set scaleType="centreCrop" so the image fits the screen and doesn't stretch.
Then you can put in any other layouts as you normally would, like the LinearLayout below.
You can use android:alpha to set the transparency of the image.
In lines with the answer of NoToast, you would need to have multiple versions of "your_image" in your res/drawable-ldpi,mdpi, hdpi, x-hdpi (for xtra large screens), remove match_parent and keep android: adjustViewBounds="true"