Adnroid中消除ImageButton默认背景

翻译 2015年11月20日 10:09:59

最近在Android开发中使用到了ImageButton这个控件,一般而言我们有两种设置其图片的方法,一种是设置控件的Src属性,一种是设置控件的Background属性,但是这两种方法有什么差别呢?于是上网搜索了一下,总结如下:

1、基本概念区别

src属性指按钮表层显示图片属性,background属性指按钮底层背景属性。当使用android:src属性时,图片不会拉伸(除非额外设置了Scale Type);而是用android:background属性时,图片默认会填充整个背景,

举例而言,如果你的ImageButton控件是50*50大小,而你的图片资源是30*30大小,那么src属性设置后会居中显示30*30大小的图片,而background属性则会将图片拉伸到50*50大小,造成图片的变形、模糊等问题。

2、代码编写区别

//使用src属性时,在代码中修改显示内容
btn_start.setImageDrawable(getResources().getDrawable(R.drawable.play));

//使用background属性时,在代码中修改显示内容
btn_start.setBackground(getResources().getDrawable(R.drawable.pause));

3、消除ImageButton默认的灰白色背景

当我们使用src属性设置按钮的图片的时候,ImageButton默认给我们的按钮添加了一个灰白色的背景框,造成视觉上非常别扭,我们可以用如下的方法(原文链接)进行修改:

一种方法是将ImageButton的背景改为所需要的图片。如:android:background="@drawable/XXX"
第二种方法就是将ImageButton背景改为透明,这个方法更常用:

在XML里;

   <ImageButton android:background="#00000000" .../>   

   注解:颜色和不透明度 (alpha)值以十六进制表示法表示。任何一种颜色的值范围都是 025500ff)。对于 alpha,00 表示完全透明,ff表示完全不透明。表达式顺序是“aabbggrr”,其中“aa=alpha”(00 到 ff);“bb=blue”(00 到ff);“gg=green”(00 到 ff);“rr=red”(00 到 ff)。半透明则为
"#e0000000"。例如,如果您希望对某叠加层应用不透明度为 50%的蓝色,则应指定以下值:7fff0000


在代码里:设置背景图片透明度

View v =findViewById(R.id.content);//找到你要设透明背景的layout 的id
v.getBackground().setAlpha(100);//0~255透明度值

Android 控件背景图片和imagebutton的使用(selector)

1、背景图片的使用 在使用xml做布局的时候使用andriod:background = "@drawable/your_image" 其中“your_image”就是你放在res/drawab...
  • lincyang
  • lincyang
  • 2010年08月14日 10:28
  • 7162

Android 笔记 imagebutton 点击水波纹背景效果

很多时候需要设置imagebutton或者其他类似组件的背景,图像也好,动画也好,颜色也好。但是有一点。自定义之前,可以看到可点击元素有点击水波纹效果。自定义以后,就没有了。其实,这个效果是在styl...
  • super_zq
  • super_zq
  • 2016年12月30日 00:12
  • 1399

利用selector设置ImageButton不同状态下的背景图片

在Android中,控件Button和ImageButton一般有三种状态:常态(normal)、点击状态(pressed)、聚焦状态(focused)。很多时候,我们为了提高用户的体验常常为Butt...
  • wuxianglong
  • wuxianglong
  • 2011年07月03日 02:20
  • 13583

ImageButton去边框&Button或者ImageButton的背景透明

在ImageButton中载入图片后,很多人会觉得有图片周围的白边会影响到美观,其实解决这个问题有两种方法 一种方法是将ImageButton的背景改为所需要的图片。如:android:back...
  • lgh1992314
  • lgh1992314
  • 2015年04月29日 22:13
  • 626

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

这是我从网上学来的,怕忘记,遂写
  • xueshanghon_L
  • xueshanghon_L
  • 2014年07月06日 19:43
  • 1526

android背景选择器selector用法汇总 imageButton和Button

相关属性: android:state_selected是选中 android:state_focused是获得焦点 android:state_pressed是点击 android:st...
  • wbj19900824
  • wbj19900824
  • 2012年11月07日 14:58
  • 12471

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

我们在开发的过程中,往往为了美化界面的需要,会修改按钮的默认外观,而因为Android中的按钮有三种状态—默认,被点击,被选中。所以,如果要改变按钮的外观,需要对这三种情况都做出修改,也许在以往,我们...
  • wbj19900824
  • wbj19900824
  • 2012年11月07日 11:30
  • 23229

android 设置Button或者ImageButton的背景透明

(1)修改配置文件 android:id="@+id/btnAppMore"     android:layout_width="wrap_content"     android:la...
  • huzhigenlaohu
  • huzhigenlaohu
  • 2014年12月08日 11:03
  • 8028

Android中ImageView和ImageButton的比较详解

第一次写博客,不知从何写起,就从最近项目中遇到的一些细节问题说起吧!项目中使用ImageButton,但是给图片设置具体尺寸(width,height)之后,发现还是原来的大小,为了保持图片的原始像素...
  • qq_27376951
  • qq_27376951
  • 2016年07月02日 13:49
  • 8553

android中ImageButton的使用

范例说明延续前一章按钮事件的应用范例重新设计一个具有背景图的按钮,让按钮有美观的背景图片,只是这次不使用先前的Button Widget,而是改以ImageButton Widget来显示。将按钮背景...
  • zeng622peng
  • zeng622peng
  • 2010年11月16日 12:20
  • 33406
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Adnroid中消除ImageButton默认背景
举报原因:
原因补充:

(最多只允许输入30个字)