您的位置:首页 > 移动开发 > Android开发

android ImageButton的图片怎么定义?

2014-11-11 14:28 148 查看
============问题描述============

我自定义了一个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="@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对象,否则无法比对啊。

不过根据你的需求,你不应该通过图片的变化来判断业务逻辑,而是应该通过你显示的数据本身来判断。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: