当前位置: 首页 > 知识库问答 >
问题:

带有矢量拉伸全屏的闪屏

咸浩初
2023-03-14

我用这个教程做了我的初始屏幕,它工作得很好:

  • https://www.bignerdranch.com/blog/splash-screens-the-right-way/
<style name="ThemeSplash" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/drawable_splashcreen</item>
</style>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/color_background_splash_screen" />
    <item android:drawable="@drawable/vector_najdiflet_logo" />
</layer-list>

共有1个答案

石思淼
2023-03-14

我偶然发现了同样的问题。不幸的是,似乎不可能使初始屏幕只使用一个可用于pre API23的矢量。

问题是您不能在进程之外加载VectorDrawableCompat,就像本例中的主题Android:Windowbackground一样。所以这里可能发生的是,在API21上,向量get被转换为PNG来兼容。因此,在 中,转换后的PNG被插入到 元素中,这会导致位图延伸到所有边缘,因为它缺少 元素。

因此,我的解决方案如下:在文件夹drawable-v23中创建一个drawable_splashscreen.xml,对于向量drawable,如下所示。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" 
android:opacity="opaque">
    <item android:drawable="?attr/colorPrimary"/>
    <item android:drawable="@drawable/ic_splashscreen" android:gravity="center"/>
</layer-list>

然后在常规的drawable_splashscreen.xml文件夹中创建另一个drawables

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" 
android:opacity="opaque">
    <item android:drawable="?attr/colorPrimary"/>
    <item>
        <bitmap android:src="@drawable/ic_splashscreen" android:gravity="center"/>
    </item>
</layer-list>

注意 元素。所以现在,当PNG在PreAPI 23设备上使用时,它将正确地显示,不会延伸到整个背景。

不幸的是,您还必须提供启动屏幕作为PNG,以便在旧的API中工作。

但是对于每一个API23+的设备,都将使用vector drawable。

 类似资料:
  • 本文向大家介绍拉伸相关面试题,主要包含被问及拉伸时的应答技巧和注意事项,需要的朋友参考一下 “ a”标签是内联级别元素。没有内联级别元素可以设置其宽度。为什么?因为内联级别的元素是要表示流畅的文本的,所以理论上可以从一行换行到另一行。在这种情况下,提供元素的宽度是没有意义的,因为您不一定知道它是否要包装。为了设置其宽度,您必须将其显示属性更改为或: 如果有内存,则 可以 在IE6中的某些内联级别元

  • 本文向大家介绍Android中闪屏实现方法小结(普通闪屏、倒计时闪屏、倒计时+动画闪屏),包括了Android中闪屏实现方法小结(普通闪屏、倒计时闪屏、倒计时+动画闪屏)的使用技巧和注意事项,需要的朋友参考一下 一、项目目录结构 二、activity_main.xml代码 三、activity_splashscreen.xml代码 四、SplashScreenActiviy.java代码 五、Ma

  • 我在主活动中有以下代码 可扩展置标语言 有时当我打开我的应用程序时,只会显示白屏。我已经使用AsyncTask将数据库从资产文件夹复制到设备,共享首选项将设置字体类型和大小。谁能帮我解决这个问题。谢谢你。 在提出问题之前,我已经阅读了以下问题 Android应用程序启动时的白色背景 android闪屏前几秒钟的白色背景 闪屏活动背景色

  • 因此,我正在制作一个游戏,在60秒结束时,我想让屏幕改变颜色并显示一些结束文本。我这样设置计时器: 屏幕上显示的很好,但是当结束屏幕出现时,它会在原来的白色屏幕和结束屏幕之间闪烁。由于某种原因,如果我在屏幕上挥动鼠标,它不会闪烁。 “end”是我的游戏中的文本变量 如果这有帮助的话,这也是我在结尾的部分 有没有一种方法可以使它稳定地出现,而不必更改计时器?

  • 我开发了一个用于全屏显示相机预览的小应用程序。我使用的是摄像头API。 这是活动布局: 当设备在纵向时,显示器是垂直缩放的,以匹配设备屏幕的高度——所以宽高比不同于本地相机的宽高比。这两张图片更好地解释了我所说的: 第一幅图像是用本机相机设备拍摄的。第二幅图像是用我的应用程序制作的,相机全屏显示——图像倾斜、拉伸以适应屏幕。 我需要将相机预览设置为全屏,而不考虑mehod给定的预览大小,并且不失真