android Imagebutton 点击更换背景图片,图是换了Imagebutton的大小为啥也变了?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android Imagebutton 点击更换背景图片,图是换了Imagebutton的大小为啥也变了?相关的知识,希望对你有一定的参考价值。

参考技术A 因为设备了View的宽高等于图片本身,所以当图片大小不同,imageButton大小就会不同。可以使用android:scaleType来指定图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。
设置的方式包括:
1.
在layout
xml中定义android:scaleType="CENTER"
2.
或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);
将对ScaleType的值和对应的显示效果用最直观的方式——真图演示的方法,来进行说明。
scaleType的取值区别:
1.
SetScaleType(ImageView.ScaleType.CENTER);
按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
2.
SetScaleType(ImageView.ScaleType.CENTER_CROP);
按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
3.
setScaleType(ImageView.ScaleType.CENTER_INSIDE);
将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
4.
setScaleType(ImageView.ScaleType.FIT_CENTER);
把图片按比例扩大/缩小到View的宽度,居中显示
5.
FIT_START,
FIT_END在图片缩放效果上与FIT_CENTER一样,只是显示的位置不同,FIT_START是置于顶部,FIT_CENTER居中,FIT_END置于底部。
在此就不给出示例了。
6.
FIT_XY
不按比例缩放图片,目标是把图片塞满整个View。

android开发笔记如何让ImageButton去掉白色边框和让ImageButton具有点击效果

这是我从网上学来的,怕忘记,遂记起来

如何让ImageButton去掉白色边框

android:background="#00000000"   //把背景变透明
放在那一段代码里呢?放在layout里面的.xml文件里

如:

<ImageButton
        android:id="@+id/down"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/surfaceView"
        android:layout_toRightOf="@+id/left"
        android:background="#00000000"       //放这里
        android:src="@drawable/id_down" />
效果自己试一下
然后说到让ImageButton具有点击效果,这个和上面就是最佳配合了

当然这个也有很多方法,我就觉得这个比较适合我

首先我们准备两张图片

(left)-----1    半透明

(left2)------2     不透明

也可以弄不同颜色

这里以1为默认显示,2是点击才显示的

把图片放进drawable-hdpi里面,新建文件夹来存放将要用的是文件drawable,然后在这个文件夹里面新建一个.xml文件id_left(名字可自己命名)。里面写上下面代码:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
	<item android:state_pressed="true"
		android:drawable="@drawable/left2" />
	<item android:state_focused="true"
		android:drawable="@drawable/left2" />
	<item android:drawable="@drawable/left" />
</selector>

然后在layout里的.xml里面加上

<ImageButton
        android:id="@+id/left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/down"
        android:layout_alignLeft="@+id/surfaceView"
        android:background="#00000000"
        android:src="@drawable/id_left" />   //这里
然后就可以了,看效果图

这个是没有按的


这个是按下去的效果



举一反三其它也可以这样!!!


以上是关于android Imagebutton 点击更换背景图片,图是换了Imagebutton的大小为啥也变了?的主要内容,如果未能解决你的问题,请参考以下文章

Android Espresso点击ImageButton点击错误位置

Android ImageButton点击有时不起作用

android开发笔记如何让ImageButton去掉白色边框和让ImageButton具有点击效果

android imageButton 点击按钮前中后,按钮颜色的变化

Android Studio : ImageButton 图像/背景闪光

imageButton 中,怎么实现 src 的图片 和imagebutton 大小 相同拜托各位大神