如何在android中为按钮添加图像?

Posted

技术标签:

【中文标题】如何在android中为按钮添加图像?【英文标题】:How to add image for button in android? 【发布时间】:2011-05-11 17:01:16 【问题描述】:

如何向按钮添加图像而不是文本?

【问题讨论】:

【参考方案1】:

比较幽默的是,考虑到您的标签,只需使用 ImageButton 小部件。

【讨论】:

【参考方案2】:

正如他所说,使用了ImageButton 小部件。将图像文件复制到项目的 Res/drawable/ 目录中。在 XML 中,只需进入 XML 文件的图形表示(为简单起见)并单击您添加的 ImageButton 小部件,转到其属性表并单击 src: 字段中的 [...]。只需导航到您的图像文件。另外,请确保您使用的是正确的格式;由于我自己的原因,我倾向于坚持使用 .png 文件,但它们确实有效。

【讨论】:

实际有帮助的回复,谢谢!我不知道在哪里放置图像或如何指定它们的位置。【参考方案3】:
   <Button
        android:id="@+id/button1"
        android:layout_
        android:layout_
        android:text="News Feed"
        android:icon="@drawable/newsfeed" />

newsfeed 是可绘制文件夹中的图像

【讨论】:

这不起作用。要使按钮带有文本和图标,请使用带有 android:drawableLeft 属性的 Button 类:&lt;Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_text" android:drawableLeft="@drawable/button_icon"&gt; 对不起,我的重播很晚,但它适用于我,您没有为按钮分配文本,因此它不会出现,问题是显示带有图像而不是文本的按钮 :)【参考方案4】:

你应该试试这样的

    <Button
    android:id="@+id/imageButton1"
    android:layout_
    android:layout_
    android:background="@drawable/qrcode"/>

android:background="@drawable/qrcode" 会做到的

【讨论】:

ImageButton 总是在使用 wrap_content 时选择正确的大小。 Button 可以扭曲图像,尤其是在它们很小的时候。【参考方案5】:

将您的图像放入可绘制文件夹中。这里我的图片文件名是left.png

<Button
    android:id="@+id/button1"
    android:layout_
    android:layout_
    android:layout_x="118dp"
    android:layout_y="95dp"
    android:background="@drawable/left"
    android:onClick="toast"
    android:text=" " />

【讨论】:

【参考方案6】:

只需使用 ImageButton 视图并为其设置图像:`

 <ImageButton
    android:id="@+id/searchImageButton"
    android:layout_
    android:layout_
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:src="@android:drawable/ic_menu_search" />

【讨论】:

【参考方案7】:

您可以在您的 android activity_main.xml 中创建一个 ImageButton,并且您希望将哪个图像放置在您的按钮中,只需将该图像粘贴到您的 drawable 文件夹中即可。下面的示例代码供您参考。

<ImageButton
    android:id="@+id/button"
    android:layout_
    android:layout_

    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="49dp"
    android:layout_weight="1"
    android:onClick="prev"
    android:src="@drawable/prev"
    />

【讨论】:

【参考方案8】:

Material Components 中的新MaterialButton 可以包含一个图标:

<com.google.android.material.button.MaterialButton
    android:id="@+id/material_icon_button"
    style="@style/Widget.MaterialComponents.Button.TextButton.Icon"
    android:layout_
    android:layout_
    android:text="@string/icon_button_label_enabled"
    app:icon="@drawable/icon_24px"/>

您还可以自定义一些图标属性,例如iconSizeiconGravity

参考here。

【讨论】:

【参考方案9】:

您可以将 ImageView 用作按钮。在为 ImageView 编写 imageView.setOnClickListener 之后创建一个 ImageView 并设置 clickable true。

  <ImageView
android:clickable="true"
android:focusable="true"`
android:id="@+id/imageview"
android:layout_
android:layout_
/>

在Activity的oncreate中:

imageView.setOnClickListener(...

【讨论】:

以上是关于如何在android中为按钮添加图像?的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何在 Android 中为图像添加水印效果? [复制]

如何在android中为按钮添加边框[重复]

如何在安卓中为按钮添加颜色

如何在 Android 的 LISTVIEW 中为每个原​​始图像添加不同的图像?

如何在android中为透明png图像添加描边/边框?

如何在 android 的选项菜单中为 chromecast 添加自定义投射按钮?