Home » Android » android – Problem with a layout background image

android – Problem with a layout background image

Posted by: admin June 15, 2020 Leave a comment

Questions:

I am trying to set a image like background image in a layout (by xml or by code)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_layout"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:background="@drawable/my_image">

or

View myLayout= findViewById( R.id.main_layout);
myLayout.setBackgroundResource(R.drawable.my_image);

My problem is than android fix the image in the all background screen, resizing and modifying the image ratio.

How can I set a image, and that the image takes only the neccesary space? (without image resizing)

How to&Answers:

Without adding an ImageView to the layout, if the image is smaller than the space, you can create an xml bitmap resource like the following, and use this in place of the original background image:

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

Answer:

Put your LinearLayout inside a RelativeLayout and add an ImageView to that RelativeLayout.

<RelativeLayout
    android:id="@+id/relativeLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal" >

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="fitXY"
        android:src="@drawable/my_image" />

    <LinearLayout
        android:id="@+id/main_layout"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

Note that ImageView is the first element in RelativeLayout, causing it to be drawn in background. By declaring fitXY and adjustViewBounds in ImageView, you ensure your image keeps its ratio. You could as well turn adjustViewBounds off and choose another scaleType like fitStart or centerCrop. They also keep aspect ratio.

Answer:

Jst take another layout inside LinearLayout.

Keet it as Relative so that u can keep that layout wherever You want.
and in that Relative Layout u keep imageView.

And ya that’s it i think what u want….

Answer:

“setBackground” resize the image to fill the View(LinearLayout).
Please add ImageView in LinearLayout or RelativeLayout, and then use setImageResource to achieve that.