在 Android 中的单个 ImageView 中叠加多个图像
在 Android 中,图像可以显示在布局中的 ImageView 内。 ImageView 一次只接受一个图像作为输入。但是,可能需要在同一个 ImageView 中显示两个或多个图像。假设我们的应用程序显示飞行模式的状态。启用飞行模式时,它必须显示飞机的图像,禁用时,它必须用十字或方块符号之类的东西覆盖同一图像。由于 ImageView 只接受一个输入源,所以不可能设置两个图像作为源。因此,在这种情况下,我们必须创建一个包含图像列表的资源,并将此资源设置为 ImageView 的源属性。因此,通过本文,我们将向您展示如何创建包含多个图像的资源并将其设置在 ImageView 中。
分步实施
第 1 步:在 Android Studio 中创建一个新项目
要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。我们在 Kotlin 中演示了该应用程序,因此请确保在创建新项目时选择 Kotlin 作为主要语言。
第 2 步:在 drawable 文件夹中导入您选择的图像
我们从本地剪贴画中导入了两个矢量资产。将它们存储在 drawable 文件夹中。
请参考这篇文章:如何在 Android Studio 中将图像添加到 Drawable 文件夹?
第 3 步:创建一个以根元素为 layer-list (layer.xml) 的可绘制资源文件
在 drawable 文件夹中创建一个 drawable 资源文件,以根元素作为图层列表。给它起一个像图层一样的名字。生成的文件具有扩展名 XML。
第 4 步:将项目(导入的图像)添加到 layer.xml
以下一个项目与前一个项目重叠的方式添加项目。
XML
XML
Kotlin
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.ImageView
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Declaring and Initializing
// ImageView and Button from the layout
val mImageView = findViewById(R.id.imageView)
val mButton = findViewById
步骤 5:使用 activity_main.xml 文件
导航到app > res > layout > activity_main.xml并将以下代码添加到该文件中。下面是activity_main.xml文件的代码。在布局文件中添加 ImageView 和一个按钮。 ImageView 将在按钮单击时显示图层列表。
XML
步骤 6:使用MainActivity.kt 文件
转到MainActivity.kt文件并参考以下代码。下面是MainActivity.kt文件的代码。代码中添加了注释以更详细地理解代码。
科特林
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.ImageView
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Declaring and Initializing
// ImageView and Button from the layout
val mImageView = findViewById(R.id.imageView)
val mButton = findViewById
输出:
我们可以看到,当我们点击叠加按钮时,ImageView 设置了两个图像,一个重叠另一个。