【问题标题】:Make drawable do centerCrop in layer-list在 layer-list 中使 drawable do centerCrop
【发布时间】:2016-08-22 14:23:21
【问题描述】:

全部。

我想制作闪屏:

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/background_splash</item>
</style>

drawable/background_splash:

<?xml version="1.0" encoding="utf-8"?>

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

<item android:bottom="16dp">
    <bitmap
        android:gravity="center|fill_horizontal"
        android:src="@drawable/splash_logo"
        />
</item>

<item android:bottom="16dp">
    <bitmap
        android:gravity="bottom"
        android:src="@drawable/logo"/>
</item>

但我无法使用 android:src="@drawable/splash_logo" 将位图调整为 ImageView 中的 centerCrop 比例(我需要我的位图填充所有宽度)现在它的大小以像素为单位的资源大小。如果我把它做得更大,屏幕就会更大。我尝试了 scale drawable,但没有任何意义。

你有什么建议吗?

【问题讨论】:

  • 你得到这个答案了吗?
  • 不,对于那些问题,这是不可能的。也许从那时起有些事情发生了变化。您所能做的就是使一些可绘制的成为例如100dp。
  • 好的,我明白了,感谢您的回复。

标签: android splash-screen image-resizing


【解决方案1】:

我可以实现全屏,但请记住,在 18:9 屏幕上会有点拉伸

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/splash_2_x2"
        android:top="0dp"
        android:bottom="0dp"
        android:left="0dp"
        android:right="0dp"/>
</layer-list>

【讨论】:

  • 要填充屏幕,您只需要像android:gravity="fill" 这样的重力属性,但这不会实现centerCrop 作为本文中的问题。
【解决方案2】:

将此行更改为

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/background_splash</item>
</style>

 <style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:background">@drawable/background_splash</item>
</style>

因为 android:windowsBackground 属性将无法全屏显示启动画面。这是你使用 android:background 进行启动的好方法。然后,如果您愿意,可以在 Splash Activity 中调用 centercrop。希望这有帮助!

【讨论】:

  • 谢谢,但结果相同
  • 您的启动画面是否全屏显示?
  • 不,现在它有 60-70% 的宽度。我认为在不同的屏幕尺寸下它有不同的结果。 60-90%
  • 以 3 种不同大小的 ldpi、mdpi 和 hdpi 裁剪图像并将这些图像放入 mipmap 并从 mipmap 中调用它们,例如 @mipmap/logo 和 @mipmap/splash_logo。这是将图像适合所有尺寸的 Android 手机和平板电脑的唯一方法,请参阅developer.android.com/training/basics/supporting-devices/…
  • android:background 是视图属性,而不是主题属性。永远不要在你的主题中使用它。
猜你喜欢
  • 2015-01-11
  • 2020-10-29
  • 1970-01-01
  • 1970-01-01
  • 2013-01-04
  • 2016-02-08
  • 2013-09-01
  • 1970-01-01
  • 2018-01-15
相关资源
最近更新 更多