web-dev-qa-db-ja.com

ビューの背景描画可能画像の不透明度(XMLレイアウトを使用)

View(つまりTextViewなど)の背景画像の不透明度を変更する方法があるかどうか疑問に思っていました。

背景画像を次のように設定できることを知っています。

Android:background="@drawable/my_drawable_image"

または、次のようなアルファ設定で特定の背景色を設定できます。

Android:background="#10f7f7f7"

背景を描画可能なイメージとして設定している場合、不透明度を制御する方法(アルファを設定する方法)はありますか?そして、私はXMLレイアウトでこれを行いたいです。 Drawableオブジェクトを取得し、プログラムでアルファを設定できることは既に知っていますが、レイアウトでそれができるかどうかを見たいです。

23
xil3

それは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);
33
xil3

これにより、作業が簡単になる場合があります

View backgroundimage = findViewById(R.id.background);
Drawable background = backgroundimage.getBackground();
background.setAlpha(80);

アルファ値0〜255、0は完全に透明、255は完全に不透明を意味します

from: この回答

13
Mani

XMLを使用して透明度を変更することもできます。

Android:alpha = "0.7"

アルファの値の範囲は0〜1です

9
Alireza

画像を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);
6
Shlomi Hasin

あなたが与えた答えは、あなたが尋ねた質問に正確に答えていませんでした。これが私がしたことです。

    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);
2
JohnnyLambada