您的位置:首页 > 移动开发 > Android开发

android imagebutton 带文字图片的实现方法

2012-11-15 23:26 721 查看
要实现带文字的ImageButton的方法很多,我这里仅列举一种方法:自定义一个继承自ImageButton的类,然后Override它的onDraw(Canvas canvas)方法。

public class MyImageButton extends ImageButton { 

    private String text = null;  //要显示的文字 

    private int color;               //文字的颜色 

    public MyImageButton(Context context, AttributeSet attrs) { 

        super(context,attrs); 

    } 

    public void setText(String text){ 

        this.text = text;       //设置文字 

    } 

    public void setColor(int color){ 

        this.color = color;    //设置文字颜色 

    } 

    @Override

    protected void onDraw(Canvas canvas) { 

        super.onDraw(canvas); 

        Paint paint=new Paint(); 

        paint.setTextAlign(Paint.Align.CENTER); 

        paint.setColor(color); 

        canvas.drawText(text, 15, 20, paint);  //绘制文字 

    } 

}

下面进行测试,在布局文件中定义两个MyImageButton类型的控件button01和button02

 

<linearlayout 

  xmlns:android="http://schemas.android.com/apk/res/Android"

  android:orientation="horizontal"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"> 

  <com.alex.layout.myimagebutton 

    android:id="@+id/button01"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="@drawable/button_bg"

    /> 

  <com.alex.layout.myimagebutton 

    android:id="@+id/button02"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="@drawable/button_bg"

    /> 

最后在activity中分别设置button01和button02要显示的文字和文字的颜色

button01= (MyImageButton)findViewById(R.id.button01); 

button01.setText("呵呵"); 

button01.setColor(Color.RED); 

button02 = (MyImageButton)findViewById(R.id.button02); 

button02.setColor(Color.BLUE); 

button02.setText("哈哈");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Button