Adnroid中消除ImageButton默认背景

最近在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透明度值
  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值