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

如何在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

我刚发现你的问题,同时遇到与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
?
ITMISS

从上面来看,更容易。默认的alpha属性用于按钮

android:alpha="0.5"

范围介于0表示完全透明,1表示完全不透明。


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

我对每个人都感到惊讶别人的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

添加回答

回复

举报

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