ImageButton介绍及两种透明方案

java.lang.Object

android.view.View

android.widget.ImageView

android.widget.ImageButton

直接子类:

ZoomButton

类摘要:

显示一个可以被用户点击的图片按钮,默认情况下,ImageButton看起来像一个普通的按钮,在不同状态(如按下)下改变背景颜色。按钮的图片可用通过<ImageButton> XML元素的android:src属性或setImageResource(int)方法指定。

要删除按钮的背景,可以定义自己的背景图片或设置背景为透明。(注:请看原图和图片按钮,默认图片周围有按钮的背景,选中之后为黄色)



注意:定义背景为透明的方案是:

第一种方法是将ImageButton的背景改为所需要的图片。如:android:background="@drawable/XXX"

第二种方法就是将ImageButton背景改为透明,这个方法更常用

在XML里;

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

注解:颜色和不透明度 (alpha)值以十六进制表示法表示。任何一种颜色的值范围都是 0 到 255(00ff)。对于 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透明度值



为了表示不同的按钮状态(焦点,选择等),你可以为各种状态定义不同的图片。例如,定义蓝色图片为默认图片,黄色图片为获取时焦点时显示的图片,黄色图片为按钮被按下时显示的图片。一个简单的方法可以做到这点——通过XML的"selector."配置,如下:

保存上面的XML到res/drawable/文件夹下(注:注意文件名大小写!),将该文件名作为一个参数设置到ImageButton的 android:src属性(注:如xml文件名为myselector.xml,那么这里设置为"@drawable/myselector",设置android:background也是可以的,但效果不太一样)。Android根据按钮的状态改变会自动的去XML中查找相应的图片以显示。

<item>元素的顺序很重要,因为是根据这个顺序判断是否适用于当前按钮状态,这也是为什么正常(默认)状态指定的图片放在最后,是因为它只会在pressed和focused都判断失败之后才会被采用。(注:例如按钮被按下时是同时获得焦点的,但是获得焦点并不一定按了按钮,所以这里会按顺序查找,找到合适的就不往下找了。这里按钮被点击了,那么第一个将被选中,且不再在后面查找其他状态。)

参见Form Stuff tutorial

继承自父类的方法

public void  setAlpha  (int alpha)

设置ImageButton图片的透明度(注意不是背景图片的)。效果如图:

参数

alpha 透明值0~255,0为完全透明,255为完全不透明

时间: 11-20

ImageButton介绍及两种透明方案的相关文章

转:Selenium2.0介绍——WebDriver两种驱动浏览器的方式

如果之前熟悉Selenium RC,理解了Selenium RC是如何工作的,那么,当第一次接触Selenium WebDriver的时候,看到WebDriver居然可以不需要指定远端服务器的IP地址和端口号的,一定会惊讶的. 事实上,WebDriver有两种方式“驱动”浏览器的方式.1. Selenium Server:和Selenium RC一样的,通过指定远端服务器IP地址和端口号,由这个远端服务器来驱动浏览器.2. 直接调用:无须指定任何服务器IP地址和端口号.直接使用本地的浏览器(只要

渐变色进度条的两种绘制方案

在App开发中经常会用到渐变色进度条控件,而自定义进度条的实现也不难,下面提供了两种渐变色进度条的实现方案. 效果图如下: 第一种实现方案:使用图层layer实现 层级结构如图所示: 构建过程如下: 1.创建容器 容器创建方案上采用的是生成UIView的子视图:LabelProgressBar, 把LabelProgressBar当作一个类似容器的控件而面向客户端. 好处是:可以方便的使用LabelProgressBar在Xib,StoryBoard,代码中. 而如果用其他的方式,却做不到这样使

检验上传图片大小、尺寸、类型的两种实现方案

做图片上传功能时,我们经常会遇到一个问题就是,就是要对上传的图片进行一个校验,校验的东西包括图片的大小.尺寸(即宽和高)以及图片的类型. 今天我主要介绍两种方式来进行图片的校验,一种是在前端用js校验,另一种是放在服务器端校验.接下来我们来进行介绍 第一种:放在前端用js校验 下面直接贴源代码,注释也写在代码里面 1 <%@ page language="java" contenttype="text/html; charset=UTF-8" pageenco

CSS两种透明表述

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>两种透明度表述</title> <style type="text/css"> body{ background: url(web/images/background.jpg); } .box1{ /* 此方法透明整个元素模块

html的特质语义:微格式及其他(重点介绍其中两种)

今天再次翻开html的书本, 感觉过了个周末似乎生疏了许多, 虽然我是刚接触html的, 但是对于他还是抱有极其大的兴趣的, 所以不爱看书的我, 也开始一遍遍的翻阅着书本, 寻找解决问题的方法, 下面就给大家分享下我心中的疑问和解决问题的办法吧, 同时也为大家带来今天我的收获! 一.html中的元数据 元数据本质上就是关于数据的数据. 举个例子吧, 当我们从iTunes音乐商店购买一首歌的时候, 这首歌曲的文件本身(AAC文件)就是数据, 而出现在音频播放器上面的歌曲信息(标题. 歌手. 专辑.

Android——Fragment介绍及两种基本使用方法

今天在调ViewPager的时候,感觉ViewPager+Fragment这种做法更灵活,所以,现在拿出来Fragment再整理下. 一,为什么要用Fragment 1,灵活布局 Fragment表现Activity中用UI的一个行为或者一部分.可以组合多个fragment放在一个单独的activity中来创建一个多界面区域的UI,并可以在多个activity里重用某一个fragment.把fragment想象成一个activity的模块化区域,有它自己的生命周期,接收属于它的输入事件,并且可以

(三)Redis两种持久化方案

Redis的持久化策略:2种 RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的数据进行快照并持久化到硬盘.RDB是Redis默认采用的持久化方式. ---------aof:把所有的对redis的服务器进行修改的命令都存到一个文件里,命令的集合 rdb: 默认情况下,是快照rdb的持久化方式,将内存中的数据以快照的方式写入二进制文件中,默认的文件名是dump.rdb redis.conf配置: save 900 1 save 300 10

redis的两种持久化方案

人生在于折腾系列,网络,多线程等系列博客楼主还在继续折腾也不会放弃.这是全新的系列,缓存的知识其实并不仅仅在于简单的增删改查,我觉得有必要全面深入的学习一波.记录学习的过程与体悟. 2|0RDB 2|1什么是RDB 对redis中的数据执行周期性的持久化,通过配置文件中设置检查间隔时间与备份触发条件来对数据进行周期性的持久化 2|2RDB持久化的优点 RDB会生成多个数据文件,每个数据文件都代表了某一个时刻中redis的数据,这种多个数据文件的方式,非常适合做冷备份. RDB对redis对外提供

最常用的两种C++序列化方案的使用心得(protobuf和boost serialization)

导读 1. 什么是序列化? 2. 为什么要序列化?好处在哪里? 3. C++对象序列化的四种方法 4. 最常用的两种序列化方案使用心得 正文 1. 什么是序列化? 程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯.这个将 程序数据转化成能被存储并传输的格式的过程被称为"序列化"(Serialization),而它的逆过程则可被称为"反序列化" (Deserialization). 简单