Search code examples
androidandroid-studioimageview

Background probleam in android application


I'm realizing an application using Android Studio and I've created an Activity to choose the background. Everything works Fine if I use the navigation buttons that I've realized but if I press the system backarrow when I'm in the BackgroundActivity the image became small and doesn't cover all the screen (as showed below). I've tried to reset the background in the onResume() function and then invcalidate but it didn't work. I put below the code of onResume() function and how the background is implemented Hope the problem is clear

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/imgBg"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        android:background="@drawable/background0" />

    <androidx.constraintlayout.widget.ConstraintLayout
...
    @Override
    protected void onResume() {
        super.onResume();

        //Gestione sfondo
        ImageView bg = findViewById(R.id.imgBg);
        bg.setBackground(MainActivity.bgs.getActive());
        bg.invalidate();
    }

When you first open it is like this

Then you select a new background and it opens this

But if you press the backarrow on the left of the system nav bar it happens this


Solution

  • I had the same problem, you're using the same drawable for the bg and the small rect of the choice. To solve it create a copy of the drawable or get the resource directly using R.drawable.bg