了解

在安卓的界面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并把形式参数去掉。

android button 图片不缩放,ImageButton如何让图片按比例缩放不被拉伸相关推荐

  1. Android横竖屏切换View设置不同尺寸或等比例缩放的自定义View的onMeasure解决方案(2)...

    Android横竖屏切换View设置不同尺寸或等比例缩放的自定义View的onMeasure解决方案(2) 附录文章1以xml布局文件方式实现了一个view在横竖屏切换时候的大小尺寸缩放,实现这种需求 ...

  2. css 缩放比例缩放,CSS实现宽高成比例缩放

    用js实现一个宽度自适应,高度随着宽度变化而变化的矩形,相信大家肯定都会.无非是js获取一下元素宽度,然后再计算出相应比例的高度,然后赋给元素,但如果要求只用CSS实现呢. html代码如下, con ...

  3. Android 根据屏幕尺寸适配控件大小(按比例缩放)

    在写布局时就在想有没有一种方式跟随屏幕大小自动缩放呢? 寻思半天不如上手写个出来 package com.android.juzi.layout;import android.app.Activity ...

  4. android 字体百分比,android 解决百分比布局适配时Textview的字体Textsize比例缩放问题...

    在使用百分比布局的过程中,大家可能会遇到一个问题,Textview的控件大小是由百分比分数算出来的,但是字体大小Textsize却没法确定.于是我想到继承textview写一个自定义的PercentT ...

  5. Android横竖屏加载不同的XML,Android横竖屏切换View设置不同尺寸或等比例缩放的XML解决方案...

    在一些应用中,涉及到横竖屏切换,View要切换成不同大小比例尺寸.为解决这种开发场景,有多种解决方案,比如可以重写View,实现横竖切换在onMesure或者此类View的回调方法里面重新测量重新绘制 ...

  6. android调取手机相册或打开相机选择图片并显示

    作为一个android小白,自己想尝试写一个小项目,因此写个小博客记录一下自己的开发历程.这一篇记录自己学习调取手机相册以及打开相机选择图片并显示 示例是采用PopupWindow弹出底部菜单,选择相 ...

  7. android 固定比例图片裁剪插件,移动端添加图片裁剪的坑

    本文关键:阻止冒泡.canvas压缩.canvas裁剪.生成黑色图片. 最近项目需要在添加图片时实现裁剪功能,虽然 github 上开源的裁剪插件不少,试了好几个插件,在移动端体验好的寥寥无几.躺了几 ...

  8. php 改变图片的宽高,php缩放图片(根据宽高的等比例缩放)示例

    php缩放图片(根据宽高的等比例缩放)示例 发布于 2014-12-07 08:53:31 | 149 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyperte ...

  9. python 图像等比例缩放

    图像等比例缩放 图像缩放 等比例缩放 pytorch下,对多维tensor进行缩放 图像缩放 目前比较常用的就是opencv-python底下的cv2.resize() cv2.resize(src, ...

最新文章

  1. 新站长更要努力做好SEO相关的优化
  2. python爬取贴吧所有帖子-Python爬虫实例(一)爬取百度贴吧帖子中的图片
  3. mscoreei.dll没有被指定在windows上运行_在Windows上使用Docker运行.NetCore
  4. 第一个通过HCIEv3.0的咱的学员
  5. 【转】计算机中浮点数的表示
  6. 牛客网编程题python输入输出_牛客网算法题目记录
  7. splay学习小记[未完结]
  8. Hibernate 主键策略
  9. 配置高并发jdbc连接池
  10. delphi播放wav声音
  11. mq消息队列到底是什么
  12. discuz论坛模板文件目录
  13. 被伽卡他卡禁用任务管理器如何解决
  14. OSI七层模型和STP/IP协议模型(生动形象,简单易懂)
  15. 二维数组的几种定义方法
  16. ASCII码和汉字码
  17. 假设检验基础 R语言
  18. EXCEL日月年转换成年月日
  19. 创建Oracle数据库和表
  20. 以ofo为代表的共享经济退烧后,风投目光转向了芯片!

热门文章

  1. linux安装python3.7
  2. 阿里天池用Pandas揭秘美国选民的总统喜好附加题
  3. javascript div 没id_javascript原生自定义轮播图组件
  4. HTML两个查询条件,javascript – 如何在IndexedDB中查询多个条件?
  5. python476集免费教材_476. 数字的补数 | python|python爬虫|python入门|python教程
  6. python phpstudy_python有没有像phpstudy那样的工具
  7. 手机鸿蒙系统体验,首位!魅族Lipro智能家居宣布接入鸿蒙系统,魅族手机还会远吗?...
  8. 加快网站速度的最佳做法_(3)script脚本放在底部
  9. Oracle database sqldeveloper study(1)
  10. MAC下安装NDKR10e