首页 > 代码库 > android ImageButton的图片怎么定义?

android ImageButton的图片怎么定义?


====================问题描述====================
我自定义了一个View对象,对象内在行项目上添加了一个ImageButton对象,对象的图片使用src属于设置,然后在按钮的OnClick事件内通过setBackgroundResource方法设置了ImageButton对象的图片,但两个属于对应的图片不是同一个东西;前者设置后会有一个方形的按钮在下面显示,后者设置后不会显示方形的按钮;如何在xml内设置setBackgroudResource的图片,不要显示按钮的方框;
====================解决方案1====================
你的需求用drawable就可以实现啊。 为啥子要写代码呢?

另外实际中,imagebutton比较冷门, 都用imageview
====================解决方案2====================
android:src设置的是图片显示的内容,当然和setBackgroundResource设置背景不一样,你应该设置imageView.setImageDrawable,这个来设置显示内容,这样就和android:src设置的一致了。
====================解决方案3====================
引用 6 楼 hackerlyf 的回复:
view.setBackgroundResource可以设置图片的背景,用什么命令获取view的背景图片呢?

view.getBackground()
====================解决方案4====================
可以用preference保存状态,也可以设置一个全局标识,点一次改变一下状态
====================解决方案5====================
我觉得,你应该使用android的 selector, 既然你是某种按钮的开闭图片状态,直接在drawable文件夹下建一个xml文件夹,

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:drawable="@drawable/ic_launcher" android:state_enabled="false" />    <item android:drawable="@drawable/ic_launcher" /></selector>


你将这个文件作为普通的drawable资源进行使用

当你需要更改图片状态的时候,设置view的enable就好了,android会自己帮你切换对应图片
====================解决方案6====================
最好用imageview,一样有点击事件,何必用imagebutton
====================解决方案7====================
你的意思是说需要设置该View只显示图片而不显示背景的方框吗?,可以这样设置该XML文件的
android:background="#00000000"
android:src="http://www.mamicode.com/@drawable/xxx"
 第一句设置背景为全透明,看看是否可行。
====================解决方案8====================
引用 8 楼 hackerlyf 的回复:
Quote: 引用 7 楼 lionfresh 的回复:

Quote: 引用 6 楼 hackerlyf 的回复:

view.setBackgroundResource可以设置图片的背景,用什么命令获取view的背景图片呢?

view.getBackground()

我有两个图片,一个是开,一个是关,初始化时是关闭状态,我想判断View的背景是否是开的图片还是关的图片,这两个图片放在drawable目录下,通过view.getBackgroud()获取的是个drawable对象,R.drawable.lighton是int对象,应该怎么对比判断呢?

这个除非你在setBackground()保存了drawable对象,否则无法比对啊。
不过根据你的需求,你不应该通过图片的变化来判断业务逻辑,而是应该通过你显示的数据本身来判断。

android ImageButton的图片怎么定义?