android之实现带图片和文本的Button

本文介绍了在Android中实现带有图片和文本的Button的三种方法:使用系统自带Button的drawable属性,继承Button进行重绘,以及继承布局文件。详细讲述了如何通过XML布局和自定义类实现图文Button,并提供了相关代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在仿sina微博的时候,发现有个朋友圈那个按钮是既有文本又有图标的,上网找了一下,总结如下:

一.用系统自带的Button实现

  最简单的一种办法就是利用系统自带的Button来实现,这种方式代码量最小。在Button的属性中有一个是drawableLeft,这个属性可以把图片设置在文字的左边,但是这种方

式必须让icon的背景色是透明的,如果icon的背景色不是透明的话,会导致点击按钮时icon部分的背景色不会发生变化。

主要代码:

<Button 
    android:id="@+id/bt3"
    android:layout_marginTop="4dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="火车"
    android:textSize="16sp"
    android:textColor="#000000"
    android:paddingLeft="5dp"
    android:paddingTop="5dp"
    android:paddingRight="5dp"
    android:paddingBottom="5dp"
    android:drawableLeft="@drawable/line_bus_icon"
    android:background="@drawable/button_bg">
  </Button>

如果要让文字在图标下方,改成drawableTop即可

二.继承系统的Button然后进行重绘

package com.test;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.widget.Button;


public class ImageTextButton2 extends Button {
    
    
    private int resourceId = 0;
    private Bitmap bitmap;
    
    public ImageTextButton2(Context context
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值