android中button上设置图片

android中button上设置图片,第1张

android中button上设置图片的方法为:

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来绘制


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11351012.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存