Изображение на заставке слишком растянуто - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть изображения в моих папках для рисования, и они имеют размеры в стандартные размеры и помещают их в каждую папку. Но когда я запускаю свое приложение и запускается MainActivity, мое изображение SplashScreen выглядит растянутым и выглядит плохо на экране. Я посмотрел ответы онлайн, но ничего не получилось.

Что я могу сделать, чтобы изображение выглядело нормально на заставке.

Это мой MainActivity.cs

        [Activity(Label = "Peppy", Icon = "@mipmap/bicon", Theme = "@style/peppy", MainLauncher = true, NoHistory = true)]
        public class SplashActivity : Activity
    {
           protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            StartActivity(typeof(MainActivity));            
        }
    }

И это мой способ определения стиля в style.xml

 <style name="peppy" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/bluesplash</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:colorPrimaryDark">#1976D2</item>
  </style>

  <style name="Main Theme" parent="MainTheme.Base"></style>

Я хочу, чтобы изображение SplashScreen идеально помещалось на экране так, как я хочу. Спасибо

1 Ответ

0 голосов
/ 30 апреля 2019

У меня есть файл splashScreen.xml в папке drawables

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item>
    <color android:color="@color/green_colour"/>
  </item>
  <item>
    <bitmap
        android:src="@drawable/splash_logo"
        android:tileMode="disabled"
        android:gravity="center"/>
  </item>
</layer-list>

, который центрирует изображение, не искажая его.

Действие выглядит так

using System.Threading.Tasks;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Support.V7.App;
using Android.Util;
using App1.Droid;

namespace com.xamarin.sample.splashscreen
{
    [Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true)]
    public class SplashActivity : AppCompatActivity
    {
        static readonly string TAG = "X:" + typeof(SplashActivity).Name;

        public override void OnCreate(Bundle savedInstanceState, PersistableBundle persistentState)
        {
            base.OnCreate(savedInstanceState, persistentState);
            Log.Debug(TAG, "SplashActivity.OnCreate");
        }

        // Launches the startup task
        protected override void OnResume()
        {
            base.OnResume();
            StartActivity(new Intent(Application.Context, typeof(MainActivity)));
        }

        // Prevent the back button from canceling the startup process
        public override void OnBackPressed() { }
    }
}
...