View
(つまりTextView
など)の背景画像の不透明度を変更する方法があるかどうか疑問に思っていました。
背景画像を次のように設定できることを知っています。
Android:background="@drawable/my_drawable_image"
または、次のようなアルファ設定で特定の背景色を設定できます。
Android:background="#10f7f7f7"
背景を描画可能なイメージとして設定している場合、不透明度を制御する方法(アルファを設定する方法)はありますか?そして、私はXMLレイアウトでこれを行いたいです。 Drawableオブジェクトを取得し、プログラムでアルファを設定できることは既に知っていますが、レイアウトでそれができるかどうかを見たいです。
それはXMLレイアウトを介して実行できるようには見えないため、プログラムによるソリューションに行き着きました。
Drawable rightArrow = getResources().getDrawable(R.drawable.green_arrow_right_small);
// setting the opacity (alpha)
rightArrow.setAlpha(10);
// setting the images on the ImageViews
rightImage.setImageDrawable(rightArrow);
これにより、作業が簡単になる場合があります
View backgroundimage = findViewById(R.id.background);
Drawable background = backgroundimage.getBackground();
background.setAlpha(80);
アルファ値0〜255、0は完全に透明、255は完全に不透明を意味します
from: この回答
XMLを使用して透明度を変更することもできます。
Android:alpha = "0.7"
アルファの値の範囲は0〜1です
画像をxmlに埋め込むことができるので、グラフィカルレイアウトで見ることができます。
<LinearLayout
style="@style/LoginFormContainer"
Android:id="@+id/login_layout"
Android:orientation="vertical"
Android:background="@drawable/signuphead">
そして、このようにコードを変更して透過的にします:
Drawable loginActivityBackground = findViewById(R.id.login_layout).getBackground();
loginActivityBackground.setAlpha(127);
あなたが与えた答えは、あなたが尋ねた質問に正確に答えていませんでした。これが私がしたことです。
Drawable login_activity_top_background = getResources().getDrawable(R.drawable.login_activity_top_background);
login_activity_top_background.setAlpha(127);
LinearLayout login_activity_top = (LinearLayout) findViewById(R.id.login_activity_top);
login_activity_top.setBackgroundDrawable(login_activity_top_background);