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 设置Button或者ImageButton的背景透明

(1)修改配置文件 android:id="@+id/btnAppMore"     android:layout_width="wrap_content"     android:la...

android-设置/去除背景,透明度

Button或者ImageButton的背景设为透明或者半透明半透明 透明颜色和不透明度 (alpha) 值以十六进制表示法表示。任何一种颜色的值范围都是 0 到 255(00 到 ff)。对于 a...

去掉Button的默认背景

Button的自带背景实在是太丑了,当然可以直接用图片替换,但是如果要去除的话可以用下列这种方式: 添加一个style...
  • And009
  • And009
  • 2017年02月10日 15:46
  • 1848

ImageButton的属性src与background的区别(

http://blog.sina.com.cn/s/blog_68b3fdc3010158bc.html   ImageButton 是带图标的Button控件,有src的属性,也就是设置他的图标,也...

Android ImageButton简介

Button按钮上显示文字 ImageButton上则显示图片,为它指定android:text属性没用。可以指定android:src属性,可以使用静止图片或Drawable对象。 ImageB...

ImageButton的src设置图片,padding无法控制内边距

ImageButton与ImageView有一些区别,如果一个ImageView的src设置了图片,利用padding可以直接设置内边距控制显示图片的大小,如图 如果是ImageButt...

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

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

Android Theme设置背景图片,底部被导航栏遮盖

现在启动页消除点击时的黑屏,自然比较简单的方法就是在 Theme 中设置背景了,这个应该都知道。 今天设置背景时,在有导航栏的手机上跑,发现底部的图片有一部分被导航栏遮盖了,就找了下原因。 被遮盖时的...
  • lnkywd
  • lnkywd
  • 2017年04月20日 14:25
  • 715

安卓控件之Button与ImageButton详解以及其按下效果的实现

Android系统控件Button是一种按钮控件,用户能够在该控件上点击,并后引发相应的事件处理方法;ImageButton用以实现能够显示图像功能的控件按钮。...

Android中用代码设置ImageView的src和background

代码设置ImageView的src:   代码设置ImageView的src:   setBackgroundReource(int resid) setBackground(Drawa...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Adnroid中消除ImageButton默认背景
举报原因:
原因补充:

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