为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Android中为View设置不透明度(Alpha)

如何在Android中为View设置不透明度(Alpha)

倚天杖 2019-08-24 17:39:24
如何在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;
  }}


查看完整回答
反对 回复 2019-08-24
?
不负相思意

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(完全不透明)。


查看完整回答
反对 回复 2019-08-24
  • 3 回答
  • 0 关注
  • 3702 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信