📜  在 Android 中的单个 ImageView 中叠加多个图像

📅  最后修改于: 2022-05-13 01:55:21.898000             🧑  作者: Mango

在 Android 中的单个 ImageView 中叠加多个图像

在 Android 中,图像可以显示在布局中的 ImageView 内。 ImageView 一次只接受一个图像作为输入。但是,可能需要在同一个 ImageView 中显示两个或多个图像。假设我们的应用程序显示飞行模式的状态。启用飞行模式时,它必须显示飞机的图像,禁用时,它必须用十字或方块符号之类的东西覆盖同一图像。由于 ImageView 只接受一个输入源,所以不可能设置两个图像作为源。因此,在这种情况下,我们必须创建一个包含图像列表的资源,并将此资源设置为 ImageView 的源属性。因此,通过本文,我们将向您展示如何创建包含多个图像的资源并将其设置在 ImageView 中。

分步实施

第 1 步:在 Android Studio 中创建一个新项目

要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。我们在 Kotlin 中演示了该应用程序,因此请确保在创建新项目时选择 Kotlin 作为主要语言。

第 2 步:在 drawable 文件夹中导入您选择的图像

我们从本地剪贴画中导入了两个矢量资产。将它们存储在 drawable 文件夹中。



drawable/ic_airplane

可绘制/ic_block

请参考这篇文章:如何在 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 设置了两个图像,一个重叠另一个。

想要一个更快节奏和更具竞争力的环境来学习 Android 的基础知识吗?
单击此处前往由我们的专家精心策划的指南,旨在让您立即做好行业准备!