📌  相关文章
📜  如何在 Android 中的 EditText 上添加图像?

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

如何在 Android 中的 EditText 上添加图像?

在 Android 中,EditText 是 TextView 上的叠加层,通过在运行时调用软键盘,可以使用文本对其进行编辑。它通常用于从用户那里收集文本数据。 EditText 最常用于需要用户填写详细信息和传递搜索查询的表单中。

在 EditText 上添加图像

在 EditText 上添加图像

在本文中,我们将向您展示如何在 Android 中的 EditText 中添加图像。 IDE 准备就绪后,请按照以下步骤操作。

分步实施

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

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

第 2 步:在 res > drawable 文件夹中添加图像

导航到app > res > drawable文件夹并添加您选择的任何图像或矢量。在这个演示中,我们从矢量资产中添加了一个搜索矢量。如果您不熟悉添加矢量资源,请参阅以下介绍在 Android 项目中创建和添加矢量资源的文章:如何在 Android Studio 中添加矢量资源?

第 3 步:使用 activity_main.xml 文件

导航到app > res > layout > activity_main.xml并将以下代码添加到该文件。下面是activity_main.xml文件的代码。添加一个 EditText,如下所示。

XML


  
    
         


XML


  
    
  


Kotlin
package org.geeksforgeeks.addimageinedittext
  
import android.annotation.SuppressLint
import android.graphics.drawable.Drawable
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.EditText
  
class MainActivity : AppCompatActivity() {
    @SuppressLint("UseCompatLoadingForDrawables")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring and initializing the 
        // EditText from the layout file
        val mEditText = findViewById(R.id.edit_text_1)
  
        // Initializing the drawable and
        // setting it inside the EditText
        val mDrawable: Drawable = getDrawable(R.drawable.ic_baseline_search_24)!!
        mEditText.setCompoundDrawablesWithIntrinsicBounds(null, null, mDrawable, null)
    }
}


方法一:添加EditText属性添加drawable

添加 drawableRight 属性将图像添加到 EditText 的右侧。

XML



  
    
  

方法 2:使用 MainActivity.kt 文件

转到MainActivity.kt文件并参考以下代码。下面是MainActivity.kt文件的代码。代码中添加了注释以更详细地理解代码。

科特林

package org.geeksforgeeks.addimageinedittext
  
import android.annotation.SuppressLint
import android.graphics.drawable.Drawable
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.EditText
  
class MainActivity : AppCompatActivity() {
    @SuppressLint("UseCompatLoadingForDrawables")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring and initializing the 
        // EditText from the layout file
        val mEditText = findViewById(R.id.edit_text_1)
  
        // Initializing the drawable and
        // setting it inside the EditText
        val mDrawable: Drawable = getDrawable(R.drawable.ic_baseline_search_24)!!
        mEditText.setCompoundDrawablesWithIntrinsicBounds(null, null, mDrawable, null)
    }
}

输出:

在这两种情况下,输出都如下所示。

输出