📜  Kotlin中的动态ImageButton

📅  最后修改于: 2021-05-09 16:55:25             🧑  作者: Mango

Android ImageButton是一个用户界面小部件,用于显示具有图像的按钮,并在单击按钮时完全类似于按钮,但是在这里,我们在“图像”按钮上添加了图像而不是文本。 android中有不同类型的按钮可用,例如ImageButton,ToggleButton等。

我们可以简单地通过使用按钮将图像添加到按钮activity_main.xml文件中的android:src属性,或使用setImageResource()方法。

在android中,我们可以通过手动或编程两种方式创建ImageButton控件。

首先,我们按照以下步骤创建一个新项目:

  1. 单击文件,然后单击新建=>新建项目
  2. 之后,包括Kotlin支持,然后单击下一步。
  3. 根据方便选择最小的SDK,然后单击下一步
  4. 然后选择清空活动=>下一个=>完成

在本文中,我们将以编程方式在Kotlin文件中创建ImageButton。

在activity_main.xml文件中使用LinearLayout

在此文件中,我们将仅添加EditText并设置它们两个的属性以访问Kotlin文件。



  
    
  
    
  

修改字符串.xml文件以编写应用程序的名称


    DynamicImageButtonInKotlin

在MainActivity.kt文件中创建ImageButton

我们将声明一个变量imgBtn来创建ImageButton。

val imgBtn = ImageButton(this)

然后,使用设置按钮的图像资源

imgBtn.setImageResource(R.drawable.ic_clear_black_24dp)

最后,使用以下命令将按钮添加到LinearLayout中

val linearLayout = findViewById(R.id.linear_layout)
  // Adding ImageButton in LinearLayout
  linearLayout.addView(imgBtn)

其他过程类似于在布局中手动添加图像按钮。

package com.geeksforgeeks.myfirstkotlinapp
  
import android.os.Bundle
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import android.widget.EditText
import android.widget.ImageButton
import android.widget.LinearLayout
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val num1 = findViewById(R.id.Num1)
        val num2 = findViewById(R.id.Num2)
        val imgBtn = ImageButton(this)
        imgBtn.layoutParams = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
        imgBtn.setImageResource(R.drawable.ic_clear_black_24dp)
  
  
        val linearLayout = findViewById(R.id.linear_layout)
        // Adding ImageButton in LinearLayout
        linearLayout.addView(imgBtn)
  
        imgBtn.setOnClickListener {
         if (num1.text.toString().isEmpty() || num2.text.toString().isEmpty()) {
              Toast.makeText(applicationContext,
                  "Enter both numbers", Toast.LENGTH_SHORT).show()
            }
            else {
                val num1 = Integer.parseInt(num1.text.toString())
                val num2 = Integer.parseInt(num2.text.toString())
                Toast.makeText(applicationContext,
                    "Multiplication of the numbers = " + (num1 * num2),
                    Toast.LENGTH_SHORT).show()
            }
        }
    }
}

AndroidManifest.xml文件



  

    
        
            
  
            
        
    

  

作为仿真器运行:

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