1、自定义MyButton类
public class MyButton extends Button {
//This constructormust be
public MyButton(Context context, AttributeSet attrs) {
super(context, attrs)
}
public MyButton(Context context) {
super(context)
}
private Paint mPaint = null
private String mText
private int mX, mY
public void onSetText(String text, int nLeft, int nBottom, int nTextSize,
int nTextColor) {
mPaint = new Paint()
mPaint.setTextSize(nTextSize)
mPaint.setColor(nTextColor)
this.mText = text
this.mX = nLeft
this.mY = nBottom
}
private int mDownBmpId, mUpBmpId
public void onSetBmp(int nDownID, int nUpID) {
this.mDownBmpId = nDownID
this.mUpBmpId = nUpID
}
@Override
public void onDraw(Canvas canvas) {
if (mPaint != null)
canvas.drawText(mText, mX, mY, mPaint)
super.onDraw(canvas)
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
super.setBackgroundResource(mDownBmpId)
} else if (event.getAction() == MotionEvent.ACTION_UP) {
super.setBackgroundResource(mUpBmpId)
}
return super.onTouchEvent(event)
}
}
2、 在xml布局文件中添加MyButton控件,像应用普通的Button控件一样。
<com.MyButton
android:id="@+id/test_btn" android:layout_width="120px"
android:layout_height="fill_parent" android:text="Test"
android:background="@drawable/btn_u" />
其中com.MyButton是你定义的MyButton类所在的包名
3、在onCreate()中加载MyButton控件。
MyButton btn = (MyButton)findViewById(R.id.test_btn)
btn.onSetBmp(R.drawable.btn_d, R.drawable.btn_u)
其中btn_d表示为按下btn时背景图片,btn_u为默认状态下btn背景图片。
imageView上好像是不好添加组件吧。。。你一定需要一个imageView吗?
如果不一定,其实可以不添加ImageView,直接在你的布局里设置背景图片为本来ImageView中要添加的图片,然后再在该布局上添加Button
使用ImageButton就可以实现,代码如下:<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="center"//将控件中的图片属性定义为居中显示
android:src="@drawable/xxx" />
下面是scaleType的几种属性的含义:
ImageView.ScaleType.CENTER|android:scaleType="center" 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
ImageView.ScaleType.CENTER_CROP|android:scaleType="centerCrop" 按比例扩大图片的size居中显示,使得图片长 (宽)等于或大于View的长(宽)
ImageView.ScaleType.CENTER_INSIDE|android:scaleType="centerInside" 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长(宽)等于或小于View的长(宽)
ImageView.ScaleType.FIT_CENTER|android:scaleType="fitCenter" 把图片按比例扩大(缩小)到View的宽度,居中显示
ImageView.ScaleType.FIT_END|android:scaleType="fitEnd" 把图片按比例扩大(缩小)到View的宽度,显示在View的下部分位置
ImageView.ScaleType.FIT_START|android:scaleType="fitStart" 把图片按比例扩大(缩小)到View的宽度,显示在View的上部分位置
ImageView.ScaleType.FIT_XY|android:scaleType="fitXY" 把图片按照指定的大小在View中显示
ImageView.ScaleType.MATRIX|android:scaleType="matrix" 用matrix来绘制
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)