作为透明的button背景
我有一个button。 当我按下button,我必须使文本为粗体,否则正常。 所以我写了大胆和正常的风格。
<style name="textbold" parent="@android:style/TextAppearance"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:textStyle">bold</item> </style> <style name="textregular" parent="@android:style/TextAppearance"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:textStyle">normal</item> </style>
现在我有一个button_states.xml为:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:state_pressed="true" style="@style/textbold" /> <item android:state_focused="false" android:state_pressed="true" style="@style/textregular" /> <item style="@style/textregular" /> </selector>
在我的这个button的布局,我必须使背景也是透明的…我怎么做呢? 我的布局代码是:
<Button android:id="@+id/Btn" android:background="@drawable/button_states" />
我如何将背景包含在我的风格中是透明的?
要使背景透明,只需执行android:background="@android:color/transparent"
。
然而,你的问题似乎有点深刻,因为你使用select器的方式非常奇怪。 你使用它的方式似乎是错误的,虽然如果它实际上工作,你应该把背景图像作为一个<item/>
的风格。
仔细看一下Android源代码中如何使用样式。 虽然他们没有改变点击button的文本样式,但是关于如何在那里完成你的目标有很多好的想法。
尝试新的方式来设置背景透明
android:background="?android:attr/selectableItemBackground"
使用#0000
(只有四个零,否则将被视为black
)这是透明的颜色代码。 你可以直接使用它,但我build议你在color.xml中定义一个颜色,这样你就可以享受代码的重用了。
你也可以使用:在你的xml中:
android:background="@null"
或在代码中:
buttonVariable.setBackgroundColor(Color.TRANSPARENT);
添加这个在你的Xml – android:background="@android:color/transparent"
<Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="match_parent" android:text="Button" android:background="@android:color/transparent" android:textStyle="bold"/>
我用了
btn.setBackgroundColor(Color.TRANSPARENT);
和
android:background="@android:color/transparent"
你可以通过设置颜色alpha通道来实现。
配色scheme如下#AARRGGBB A代表alpha通道(透明),R代表红色,G代表绿色,B代表蓝色。
点击button时,将背景颜色应用为transparent(light gray)
。
ButtonName.setOnClickListener()
在上面的方法中,您可以设置button的背景颜色。
码:
button.setVisibility(View.INVISIBLE);
XML:
android:background="@android:color/transparent"