700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > android button 图片不缩放 ImageButton如何让图片按比例缩放不被拉伸

android button 图片不缩放 ImageButton如何让图片按比例缩放不被拉伸

时间:2019-05-04 16:07:23

相关推荐

android button 图片不缩放 ImageButton如何让图片按比例缩放不被拉伸

了解

在安卓的界面XML中,ImageButton有这样一个属性android:scaleType,他干嘛的?

ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分。有八种类型即

1、center:图片位于视图中间,但不执行缩放。

2、centerCrop按统一比例缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或者大于相应的视图的维度

3、centerInside按统一比例缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或者小于相应的视图的维度

4、fitCenter缩放图片使用center,在中间

5、fitEnd缩放图片使用END,靠近尾部

6、fitStart缩放图片使用START,靠近头部

7、fitXY缩放图片使用XY

8、matrix当绘制时使用图片矩阵缩放

相应的java代码为 imageButton.setScaleType(ImageView.ScaleType.FIT_CENTER);

在这里我们选择fitCenter缩放图片使用center

实施

我们想要实现的效果是一个按钮点击下去可以显示点击的效果,即另外一张图片。结合onTouchListener就可以实现,不过有个地方要注意一下。

1:public class Example extends Activity {

2:ImageButton exm;

3:

4:public void onCreate(Bundle savedInstanceState) {

5: super.onCreate(savedInstanceState);

6: setContentView(R.exampleLayout);

7: exm = (ImageButton)findViewById(R.id.exmBtn);

8: initBtnListener(exm);

9:}

10:

11:private void initBtnListener(ImageButton btn){

12: btn.setOnTouchListener(new View.OnTouchListener(){

13: @Override

14: public boolean onTouch(View v, MotionEvent event) {

15: if(event.getAction() == MotionEvent.ACTION_DOWN){

16: //更改为按下时的背景图片

17: exm.setImageResource(R.drawable.anwbtn1);

18: }else if(event.getAction() == MotionEvent.ACTION_UP){

19: //改为抬起时的图片

20: exm.setImageResource(R.drawable.anwbtn0);

21: }

22: return false;

23: }

24: });

25: }

26:

27:};

在exampleLayout的XML中有一个id为exmBtn的ImageButton,并且设置属性android:scaleType=“fitCenter”

上面中更改按钮图片的方法还有另外一种就是v.setBackgroundResource(int);但是这种方法达不到让ImageButton自己管理图片缩放的效果,所以应该直接让ImageButton自己setImageResource。

注意上面的代码中使用到了内部类,其实上面的用法参数btn确实是指向exm,但是不能用btn代替exm去更换按钮图片,原因是btn必须声明为final才能在匿名内部类View.OnTouchListener()中使用。所以可以把btn参数直接替换成exm并把形式参数去掉。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。