【问题标题】:Xamarin Android - Splash screen image fitXamarin Android - 启动屏幕图像适合
【发布时间】:2021-05-23 01:37:10
【问题描述】:

我有一个 Xamarin.Forms 应用,但这个问题只与 Android 有关。

我有一个带有徽标和背景颜色的闪屏,我想更新它。我使用了一个启动主题样式,它引用了一个包含图像的 xml。

主题:

XML

然后我使用一个启动活动来使它工作并且它完美地工作。

现在我想使用图像作为背景而不是颜色,所以我所做的是创建顶部带有徽标的背景图像,将其保存为一张图像并将其用作启动画面。这会导致一些问题。

图像在屏幕上显示得太小,我希望该图像适合屏幕(因此全屏并锁定宽高比),但我无法让它正常工作。我能找到的唯一选项是“填充”,它会导致图像变形。我可以在我的屏幕上完美呈现,但不同比例的屏幕可能会看到变形的图像。我拥有的图像是一个正方形,以确保在使用 fit 时,整个屏幕都被填满。现在我只是在寻找一种方法使图像适合屏幕,而不是填满屏幕。

我试图在这里形象化我的问题:

所以我在左边有一个方形图像,当在手机上显示时(右),它应该适合屏幕而不改变纵横比。

我已经阅读了将图像包装在 xml 中的内容并将其设置在那里,但这对我不起作用。

希望有人能帮忙。

【问题讨论】:

标签: xamarin xamarin.forms xamarin.android splash-screen


【解决方案1】:

这与您的方法相同。它对我有用。 “launchscreen”是different size的背景图片,“testappwhitecolor”是背景图片的颜色。

XML

<?xml version="1.0" encoding="UTF-8" ?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
   <item>
    <color android:color="@color/testappwhitecolor" />
   </item>
  <item
      android:drawable="@drawable/launchscreen"
      android:gravity="center"/>
</layer-list>

主题

    <style name="Theme.Splash" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/background_splash_screen</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowDisablePreview">false</item>
        <item name="android:windowAnimationStyle">@null</item>
    </style>

【讨论】:

  • 好的,现在我想将背景颜色替换为在宽高比方面适合整个屏幕的图像。
  • 您需要将背景颜色 (android:color="@color/testappwhitecolor") 替换为图像的背景颜色。如果您的图像背景颜色为红色,则将 testappwhitecolor 替换为红色。并将所有不同屏幕尺寸的图像放在相应的文件夹中。
  • 没有没有用,但我通过填充屏幕暂时解决了它。这不是很好,但它有效。
  • 应用支持横向和纵向吗?它也适用于平板电脑吗?
  • @GaneshGebhard 最好的方法是为不同的设备屏幕创建适当大小(像素)的图像,然后将它们相应地放入可绘制文件(drawable-ldpi、drawable-mdpi、drawable-hdpi等) .
猜你喜欢
  • 2016-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 1970-01-01
  • 1970-01-01
  • 2016-07-01
相关资源
最近更新 更多