📌  相关文章
📜  如何在 Android 中的按钮内显示 Drawable?

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

如何在 Android 中的按钮内显示 Drawable?

Android 中的 Button 基本上是 TextView 的子类,它允许用户按下或单击它来执行操作。按钮通常包含让用户了解按钮的操作属性的文本。有时,如果开发人员希望显示图像而不是某些文本,ImageView 也可以用作按钮。但有些按钮同时包含图像或可绘制对象和文本。这些按钮通常可以在注册或登录表单中看到,如下图所示。

所以在本文中,我们将在 Android 中实现一个 Button 以及一个可绘制对象和一个文本。 IDE 准备就绪后,请按照以下步骤操作。

分步实施

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

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

第 2 步:在 drawable 文件夹中创建一个新的矢量资源

如何在 Android Studio 中添加矢量资源?按照本文了解如何添加矢量资产。如下所示,我们在 drawable 文件夹中创建了一个矢量资源。我们将在实现 Button 时使用这个 drawable。

第 3 步:使用 activity_main.xml 文件

导航到app > res > layout > activity_main.xml并将以下代码添加到该文件。下面是activity_main.xml文件的代码。我们在布局文件中实现了一个简单的按钮,如下所示。

XML


  
    


Kotlin
import android.annotation.SuppressLint
import android.content.Context
import android.content.res.Resources
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
  
class MainActivity : AppCompatActivity() {
    @SuppressLint("UseCompatLoadingForDrawables")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring and initializing 
        // the button from the layout file 
        val mButton = findViewById


第 4 步:使用 MainActivity.kt 文件

在主代码中,我们将向量的位置存储在本地值中,然后使用以下函数将其应用于 Button:

setCompoundDrawablesWithIntrinsicBounds(//left, //top, //right, //bottom)

本地值必须放在函数内的左、上、右或下位置,其余的必须为空。请参阅评论。

科特林

import android.annotation.SuppressLint
import android.content.Context
import android.content.res.Resources
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
  
class MainActivity : AppCompatActivity() {
    @SuppressLint("UseCompatLoadingForDrawables")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring and initializing 
        // the button from the layout file 
        val mButton = findViewById

输出:

您可以看到可绘制对象放置在文本的左侧。

相似地,

如果代码是mButton.setCompoundDrawablesWithIntrinsicBounds(null, mImage, null, null) ,则可绘制对象将位于文本的顶部。

如果代码是mButton.setCompoundDrawablesWithIntrinsicBounds(null, null, mImage, null) ,则可绘制对象将位于文本的右侧。

如果代码是mButton.setCompoundDrawablesWithIntrinsicBounds(null, null, null, mImage) ,则可绘制对象将位于文本的底部。