小编典典

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

all

我有一个按钮,如下所示:

<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)了,但它给了我一个错误。


阅读 78

收藏
2022-06-01

共1个答案

小编典典

我刚刚发现您的问题,同时遇到与 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;
  }
}
2022-06-01