1. ホーム
  2. android

[解決済み] Androidでビューの不透明度(アルファ値)を設定する方法

2022-02-16 17:53:08

質問

以下のようなボタンがあります。

<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) が、エラーになりました。

どうすればいいですか?

私はちょうど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;
  }
}