Подтвердить что ты не робот

Непрозрачность на фоне Живое изображение в представлении (с использованием макета XML)

Мне просто интересно, есть ли способ изменить непрозрачность фонового изображения для View (т.е. TextView и т.д.).

Я знаю, что могу установить фоновое изображение следующим образом:

android:background="@drawable/my_drawable_image"

Или я могу установить определенный цвет фона с настройкой альфа, как это:

android:background="#10f7f7f7"

Есть ли способ, которым я могу управлять непрозрачностью (установить альфа), если я устанавливаю фон как рисованное изображение? И я хочу сделать это в XML-макете. Я уже знаю, что я мог бы захватить объект Drawable и программно установить альфу, но я хочу посмотреть, могу ли я сделать это в макете.

4b9b3361

Ответ 1

Я закончил работу с программным решением, так как не похоже, что это можно сделать с помощью 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);

Ответ 2

Это упростит вашу работу

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

Альфа-значения 0-255, 0 означает полностью прозрачный, а 255 означает полностью непрозрачный

from: Этот ответ

Ответ 3

Вы также можете использовать XML для изменения прозрачности:

android:alpha = "0.7"

Значение альфа составляет от 0 до 1

Ответ 4

Вы можете вставить изображение в 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);

Ответ 5

Ответ, который вы дали, точно не ответил на заданный вами вопрос. Вот что я сделал.

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