12

I am using the style below to show a splash screen in my Xamarin Android application however the image always shows with incorrect sizing. I would like it to resize with the correct dimensions however it always expands to fit the screen.

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <style name="Theme.Splash" parent="android:Theme">
    <item name="android:windowBackground">@drawable/splashscreenimage</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:adjustViewBounds">true</item>
    <item name="android:scaleType">centerCrop</item>
  </style>
</resources>

The splash screen activity

  [Activity(MainLauncher = true, Theme = "@style/Theme.Splash", NoHistory = true)]
  public class SplashScreenActivity : Activity
  {
    protected override void OnCreate(Bundle bundle)
    {
      base.OnCreate(bundle);

      // Start our real activity
      StartActivity(typeof(LoginActivity));
    }
  }
Telavian
  • 3,752
  • 6
  • 36
  • 60

4 Answers4

9

For background drawable you should use layer-list. For example make bitmap_splash.xml:

<item android:drawable="@color/background"/>

<item>
    <bitmap
        android:gravity="center"
        android:src="@drawable/splashscreenimage" />
</item>

and then use it in your style:

...
<style name="Theme.Splash" parent="android:Theme">
    <item name="android:windowBackground">@drawable/bitmap_splash</item>
...
ivan.panasiuk
  • 1,239
  • 16
  • 20
  • 1
    I want to give the bitmap width however it is not supported under api 23. Is there anyway to make the logo bigger for all devices? thanks – Hilal Nov 14 '18 at 20:36
4

One issue is that windowBackground is sized to full screen size, inclding status bar at top or bottom of device. But the status bar is still shown. My response to Android Activity Background Image uses windowContentOverlay, which excludes the status bar.

Community
  • 1
  • 1
t9mike
  • 1,546
  • 2
  • 19
  • 31
-3

When I had trouble displaying images correctly in my app I found this helpfull site: Android scale types

It shows the outcome of the different types of scale that you can use. Hope this helps!

jHogen
  • 123
  • 8
-3

Take a look at:

Android: Scale a Drawable or background image?

Basically, this allows you to specify how to clip or stretch an image when the image is smaller than the view bounds of the screen. I think the author of this answer gives a good explanation, and it might be what you're looking for.

Community
  • 1
  • 1
jwir3
  • 6,019
  • 5
  • 47
  • 92