Android开发轻松实现带文字的图片按钮
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android开发轻松实现带文字的ImageButton
实际上,ImageButton是不能添加文字的。要实现带文字的ImageButton的方法很多,这里仅列举一种方法:自定义一个继承自ImageButton的类,然后Override它的onDraw(Canvas canvas)方法。具体步骤如下:
1)新建一个Android工程,例如工程名:TestImageButton。怎么建工程?不用我多说了吧。
2)新建一个MyImageButton类,继承android.widget.ImageButton
3)为类MyImageButton添加成员函数,详细代码如下:
package ;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.ImageButton;
public class MyImageButton extends ImageButton {
public String text = null; //要显示的文字
public float textX,textY; //文本显示的坐标位置
public int color; //文字的颜色
public MyImageButton(Context context, AttributeSet attrs) { super(context,attrs);
textX=20;
textY=60;
}
//设置需要显示的文本
public void setText(String text){
this.text = text; //设置文字
}
//设置文本显示的颜色
public void setColor(int color){
this.color = color; //设置文字颜色
}
// 设置显示文本的X、Y坐标
public void setPosition(float XX,float YY){
t extX = XX;
t extY = YY;
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint=new Paint();
paint.setTextAlign(Paint.Align.CENTER);
paint.setColor(color);
canvas.drawText(text, textX, textY, paint); //绘制文字}
}
4)在布局文件中引用:
android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="#9CFFC1"> android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello"/> <.MyImageButton a ndroid:id="@+id/button01" a ndroid:layout_width="wrap_content" a ndroid:layout_height="wrap_content" a ndroid:layout_marginLeft="25dp" a ndroid:background="@drawable/video1"/>
5)在启动Activity的onCreate方法中添加文字
package ;
import .MyImageButton;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
public class TestImageButtonActivity extends Activity {
/** Called when the activity is first created. */
private MyImageButton button01=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.main);
button01= (MyImageButton)findViewById(R.id.button01);
button01.setText("视频文件1");
button01.textX =25;
button01.textY =65;
button01.setColor(Color.rgb(147, 48, 4));
}
}