如何在Android中为View设置不透明度(Alpha)我有一个按钮,如下所示:<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),但它给了我一个错误。
3 回答
慕哥9229398
TA贡献1877条经验 获得超6个赞
我刚发现你的问题,同时遇到与TextView类似的问题。通过扩展TextView和覆盖,我能够解决它onSetAlpha
。也许你可以试试类似你的按钮:
import android.content.Context;import android.util.AttributeSet;import android.widget.TextView;public class AlphaTextView extends TextView { public AlphaTextView(Context context) { super(context); } public AlphaTextView(Context context, AttributeSet attrs) { super(context, attrs); } public AlphaTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public boolean onSetAlpha(int alpha) { setTextColor(getTextColors().withAlpha(alpha)); setHintTextColor(getHintTextColors().withAlpha(alpha)); setLinkTextColor(getLinkTextColors().withAlpha(alpha)); return true; }}
不负相思意
TA贡献1777条经验 获得超10个赞
我对每个人都感到惊讶别人的MUCH更复杂的答案。
XML
您可以非常简单地在xml中按钮(或任何其他视图)的颜色定义中定义alpha:
android:color="#66FF0000" // Partially transparent red
在上面的例子中,颜色是部分透明的红色。
定义视图的颜色时,格式可以是#RRGGBB
或#AARRGGBB
,其中AA
是十六进制alpha值。FF
将完全不透明并且00
完全透明。
动态
如果需要动态更改代码中的不透明度,请使用
myButton.getBackground().setAlpha(128); // 50% transparent
INT的范围从0
(完全透明)到255
(完全不透明)。
- 3 回答
- 0 关注
- 3786 浏览
添加回答
举报
0/150
提交
取消