Setting the background of an Activity

后端 未结 3 1865
南旧
南旧 2020-12-04 01:15

In the onCreate() method of my Activity, I grab the outermost LinearLayout of the Activity\'s layout. I then check to see what the orientation of the phone is. If it is po

相关标签:
3条回答
  • 2020-12-04 01:36

    When you load the background image in onCreate, save a reference to it. I'm assuming its a Bitmap, so in onDestroy call recycle on the Bitmap and you should be fine.

    0 讨论(0)
  • 2020-12-04 01:43

    That happens because the previous image remains in memory until the garbage collector clean it, and everytime the user open an close the keyboard, a new activity is created and a new instance of an image is done. So to prevent that crash, clean the memory on your activity. Use what Femi said, in case it is a bitmap, or force a call to the garbage collector

    0 讨论(0)
  • 2020-12-04 01:56

    Override the onConfigurationChange() method, since the changes in layout are handled with this method.

      @Override
        public void onConfigurationChanged(Configuration newConfig) {
                if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE)
                {
                    //change of background 
                }
                else if(newConfig.orientation==Configuration.ORIENTATION_PORTRAIT)
                {
                    //change the background
                }
                        else
                        { //do nothing, this might apply for the keyboard }
    
    
              super.onConfigurationChanged(newConfig);
    
    
            }
    
    
        }
    

    and add this to your manifest

    <activity android:name=".YourActivity"
             android:configChanges="keyboardHidden|orientation"                
    
                      android:label="@string/app_name">
    
    0 讨论(0)
提交回复
热议问题