我有一个按钮如下:
<Button
android:text="Submit"
android:id="@+id/Button01"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Button>
在onCreate()事件中,我像这样调用Button01:
setContentView(R.layout.main);
View Button01 = this.findViewById(R.id.Button01);
Button01.setOnClickListener(this);
在应用程序中有一个背景,我想在这个提交按钮上设置一个不透明度。如何为这个视图设置不透明度?是可以在java端设置,还是可以在main.xml文件中设置?
在java方面,我尝试了Button01.mutate(). setalpha(100),但它给了我一个错误。
我惊讶于其他人更复杂的答案。
XML
你可以非常简单地在你的xml中按钮(或任何其他视图)的颜色定义中定义alpha:
android:color="#66FF0000" // Partially transparent red
在上面的例子中,颜色是部分透明的红色。
当定义视图的颜色时,格式可以是#RRGGBB或#AARRGGBB,其中AA是十六进制alpha值。FF是完全不透明的00是完全透明的。
动态
如果您需要动态更改代码中的不透明度,请使用
myButton.getBackground().setAlpha(128); // 50% transparent
其中INT的范围从0(完全透明)到255(完全不透明)。
我建议你做的是在colors.xml文件中创建一个自定义ARGB颜色,如:
<resources>
<color name="translucent_black">#80000000</color>
</resources>
然后将按钮背景设置为该颜色:
android:background="@android:color/translucent_black"
如果你想要处理按钮的形状,你可以做的另一件事是创建一个shape drawable资源,在那里你可以设置按钮应该是什么样子:
xml: res / drawable - rounded_corner_box文件。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#80000000"
android:endColor="#80FFFFFF"
android:angle="45"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<corners android:radius="8dp" />
</shape>
然后使用它作为按钮背景:
android:background="@drawable/rounded_corner_box"