我遇到的问题是使用与我的某个资源不同的drawable绘制ImageButton背景。我将背景设置为透明,但在某些情况下,它正在拾取我的一个名为bottom_shadow.9.png的drawable。为什么为什么!?这太奇怪了......
之前我见过这个问题...我的一些应用用户抱怨看到这个问题,现在我决心想出来了!看看我现在拥有的东西。任何提示或想法都会有所帮助。
我在values / colors.xml下创建的颜色值:
<color name="transparent">#00000000</color>
我的ImageButton位于layout /:
下的一个xml布局下<ImageButton
android:id="@+id/ibHelp"
android:layout_width="wrap_content"
android:layout_height="@dimen/settings_list_item_height"
android:background="@color/transparent"
android:contentDescription="@string/content_desc_more_information"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:scaleType="centerInside"
android:src="@drawable/btn_help" />
这就是我在生成的R.java文件中看到的内容:
public static final class drawable {
public static final int bottom_shadow=0x7f020000;
}
public static final class color {
public static final int transparent=0x7f080009;
}
这应该是这样的:
这就是我所看到的:
答案 0 :(得分:2)
我认为你在另一个项目中面临的问题与我相同:在背景上使用透明色#00000000时,Android实际上并不会使其透明,而是使用直接在其下面的元素的背景drawable。
我不确定我刚才说的是清楚但是要检查是否是这样,我找到了一个快速简单的解决方案:不要使用#00000000作为背景透明但任何其他完全透明的颜色:#00FF0000甚至#00F00000应该这样做。
请参阅我在Google跟踪器中提出的问题:http://code.google.com/p/android/issues/detail?id=24653
答案 1 :(得分:2)
答案 2 :(得分:1)
为什么在内置到Android.R.color中时会创建自己的颜色?我会尝试使用:
android:background="@android:color/transparent"
它是否能解决您的问题,更简单,更清洁。
答案 3 :(得分:0)
我认为你想要你的按钮的背景是某种颜色,但你已经分配了src和按钮的颜色(在布局xml中),这意味着按钮可以使用src图片作为背景,不是纯粹的颜色。我不知道我是否说明了这一点。
答案 4 :(得分:0)
为了补充一点,我在透明的ImageButton背景中看到了非常奇怪的周期性显示损坏,因为我在后台选择器中指定项目如下:
<item android:drawable="@android:color/transparent" android:state_focused="false" android:state_pressed="false" android:state_selected="true"/>
这个可能似乎偶尔会起作用,但我肯定会遇到ImageButtons会呈现可怕的全白背景而不是漂亮透明背景的情况。
请注意,我将android:drawable语法与颜色资源混合在一起。指定颜色资源的正确方法似乎是android:color =“#FF00FF”属性或使用元素作为item的子元素。我搜索得很久很难,最终找到了这篇文章。