如何从 2 种颜色为启动屏幕背景创建可绘制对象?
Posted
技术标签:
【中文标题】如何从 2 种颜色为启动屏幕背景创建可绘制对象?【英文标题】:how to create a drawable for a splash screen background from 2 colors? 【发布时间】:2022-01-17 08:22:41 【问题描述】:我正在尝试为启动屏幕创建一个背景,使用 2 种不同的颜色,一个在另一个之上,每个正好是屏幕的一半,如下所示:
我尝试了以下方法,但由于指定的尺寸,它不适用于所有设备。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#abc123" />
</shape>
</item>
<item android:top="436dp">
<shape android:shape="rectangle">
<solid android:color="#456def" />
</shape>
</item>
</layer-list>
有人知道创建全屏可绘制背景的方法吗?
【问题讨论】:
【参考方案1】:你也可以试试这个方法。
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
xmlns:app="http://schemas.android.com/apk/res-auto">
<View
android:id="@+id/view_top"
android:layout_
android:layout_
android:background="@color/colorBlue"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintBottom_toTopOf="@+id/view_bottom"
app:layout_constraintTop_toTopOf="parent"/>
<View
android:id="@+id/view_bottom"
android:layout_
android:layout_
android:background="@color/colorGreen"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintTop_toBottomOf="@+id/view_top"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
通过在布局文件中创建两个具有垂直约束的视图。
【讨论】:
您能否指定如何将此布局文件用于初始屏幕背景?因为@drawable/@color 是必需的,而不是@layout。 将此布局文件传递给 setContentView() 方法。并根据您的要求自定义此布局。 您不了解我的具体用例,我需要在android:drawable=""
中使用此背景,因此您的解决方案不适用于此。我通过简单地创建一个代表背景的矢量图像解决了我的用例,它可以用于可绘制对象。【参考方案2】:
在这个文件中不能使用重量/百分比尺寸,你必须在你的布局文件中实现这个
【讨论】:
以上是关于如何从 2 种颜色为启动屏幕背景创建可绘制对象?的主要内容,如果未能解决你的问题,请参考以下文章