android自定义控件Button 带图片文字

XML 文件 Button 自定义mybutton
<com.example.administrator.findyou.mybutton
            android:layout_width="match_parent"
            android:layout_height="60dp"
            my:image="@drawable/b_onekey"
            android:text="短信监听"
            />
attrs文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="my">
        <attr name="image" format="reference" />
    </declare-styleable>
</resources>

mybutton   java实现

public class mybutton extends Button {
    private Drawable drawable;
    private float drawable_w;
    private float drawable_h;
    private int b;
    public mybutton(Context context, AttributeSet attributes){
        super(context,attributes);
        TypedArray a=context.obtainStyledAttributes(attributes,R.styleable.my);/*读取自定义按键布局*/
        drawable= a.getDrawable(R.styleable.my_image);/* 读写图片*/
        /*图片长宽*/
        drawable_h=drawable.getIntrinsicHeight();
        drawable_w=drawable.getIntrinsicWidth();

    }
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        /*控件整体高*/
       b = MeasureSpec.getSize(heightMeasureSpec);

    }
    protected void onDraw(Canvas canvas){
        super.onDraw(canvas);
        /*实现图形缩放*/
        drawable.setBounds(10,10,(int)((b-20)/drawable_h*drawable_w+10),b-10);
        drawable.draw(canvas);


    }

}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值