Установите прозрачный фон ImageView на Android
-
18-09-2019 - |
Вопрос
Я использую представление в Интернете, в котором я добавляю представление изображения. Как я могу установить фон этого представления изображения для прозрачного?
Я попробовал это:
mImageview.setBackgroundResource(R.color.trans);
Где trans
→ <color name="trans">#00000000 </color>
.
Решение
В вашем XML установить Background
атрибут любому цвету, White(#FFFFFF)
тень или Black(#000000)
оттенок. Если вы хотите прозрачность, просто поместите 80 перед фактическим хэш -кодом:
#80000000
Это изменит любой цвет, который вы хотите для прозрачного .. :)
Другие советы
Вы можете установить фон прозрачного любого макета, любого представления или любого компонента, добавив этот код в XML:
android:background="@android:color/transparent"
В дополнение к тому, что упомянул Харшад:
Два шестнадцатеричных символа могут быть добавлены к любому шестнадцатеричному цветовому коду. Первые два символа в 8-значном шестигранном цветовом коде представляют собой его непрозрачность в Android.
Два шестнадцатеричных персонажа могут варьироваться от 00 до FF. Например,
- Нормальный непрозрачный черный шестигранник "#000000"
- Полностью прозрачный - "#00000000"
- Полностью непрозрачный - "#ff000000"
- 50% прозрачный - "#7F000000"
Таким образом, вы можете изменить любой цвет на любой уровень прозрачности.
Чтобы найти шестнадцатеричный префикс из процента:
Разделите процентное число на 100 и умножьте на 255, чтобы получить десятичное значение. Преобразовать десятичное в шестнадцатеричную здесь.
Например, для 50%, 50/100 * 255 = 127. Используя ссылку, мы получаем шестнадцатеричное значение 7f.
Источник: Android: как создать прозрачный или непрозрачный фон
Если вы хотите добавить 20% или 30% прозрачности, вы должны предварительно подвести еще два символа в шестнадцатеричный код, например, CC.
Примечание
android:background="#CCFF0088"
в XML
Если CC является альфа -значением, FF является красным фактором, 00 является зеленым фактором, а 88 - синий фактор.
Какой -то код непрозрачности:
Значения непрозрачности шестигранника
100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5% — 0D
0% — 00
Вы также можете установить непрозрачность программно как:
yourView.getBackground().setAlpha(127);
Установите непрозрачность между 0 (полностью прозрачным) до 255 (полностью непрозрачный). 127,5 - ровно 50%.
Вы можете создать любой уровень прозрачности, используя данную формулу. Если вы хотите половину прозрачного:
16 |128 Where 128 is the half of 256.
|8 -0 So it means 80 is half transparent.
И для прозрачности 25%:
16 |64 Where 64 is the quarter of 256.
|4 -0 So it means 40 is quarter transparent.
Используйте приведенный ниже код для черного:
<color name="black">#000000</color>
Теперь, если вы хотите использовать непрозрачность, вы можете использовать приведенный ниже код:
<color name="black">#99000000</color>
И ниже для кода непрозрачности:
100% - ff
95% - F2
90% - E6
85% - D9
80% - CC
75% - BF
70% - B3
65% - A6
60% — 99
55% - 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% - 4D
25% — 40
20% — 33
15% — 26
10% - 1А
5% - 0d
0% — 00
Используйте этот код для прозрачного цвета
android:background="@android:color/transparent"
Уже есть предопределенная постоянная. Использовать Color.TRANSPARENT
.
Уже есть прозрачная встроенная в Android: R.Color.transparent. http://developer.android.com/reference/android/r.color.html#transparent
Но я думаю, что вы, возможно, захотите сделать фон изображения, который вы помещаете в прозрачный WebView, например, с прозрачным PNG, а не на фоне изображения. Если фактическое изображение совсем не прозрачно прозрачно, то фон ImageView не может быть замечен через него.
Если вы хотите это в коде, просто:
mComponentName.setBackgroundColor(Color.parseColor("#80000000"));
Или, как альтернатив, проанализируйте идентификатор ресурса со следующим кодом:
mComponentName.setBackgroundColor(getResources().getColor(android.R.color.transparent));
Для тех, кто все еще сталкивается с этой проблемой, вы можете попробовать этоelement.getBackground().setAlpha(0);
В вашем XML -файле установите атрибут «Альфа»
такие как
android:alpha="0.0" // for transparent
android:alpha="1.0" // for opaque
Вы можете дать любое значение от 0,0 до 1,0 в десятичном виде, чтобы применить требуемую прозрачность. Например, прозрачность 0,5 идеально подходит для компонента отключений
Попробуйте этот код :)
Это полностью прозрачный код HEXA - "#00000000"
Еще один простой способ:
mComponentName.setBackgroundResource(android.R.color.transparent);
Еще один рабочий вариант, с которым я столкнулся, - установить android:background="@null"
Используйте следующее для полной прозрачности:
#00000000
Когда я попробовал с #80000000, я получил черное прозрачное наложение, которое я не хочу. Попробуйте изменить первые две цифры; он контролирует уровень прозрачности, как
#00000000
#10000000
#20000000
#30000000
Вы также можете использовать View.setAlpha(float)
Чтобы точно изменить видимость.
0 будет прозрачным, 1 полностью видимым. ;)
Попробуйте использовать следующий код. Это поможет вам в полном объеме.
Файл .xml, разработанный для использования этого кода для установки цвета фона:
android:background="#000000"
или же
android:background="#FFFFFF"
Или вы можете установить его программно.
Также вы можете использовать этот код программно:
image.setBackgroundDrawable(getResources().getDrawable( R.drawable.llabackground));
Также этот код для настройки цвета фона также программно:
image.setBackgroundColor(Color.parseColor("#FFFFFF"));
Этот код для того же программно:
image.setBackgroundColor(getResources().getColor(Color.WHITE));
Цвет зависит от вашего выбора, какой цвет вы хотите использовать для прозрачного. В основном используйте белый или #ffffff Color.
Касательно R.drawable.llabackground
: Эта строка кода предназначена для вашего стиля фона, например, что -то особенное или другое для вашей цели. Вы также можете использовать это.
ImageView.setBackground(R.drawable.my_background);
ImageView.setBackgroundResource(R.color.colorPrimary);
ImageView.getImageAlpha();
ImageView.setAlpha(125); // transparency
Попробуй это:
#aa000000
Для прозрачности 000000 = черный, вы можете изменить эти шесть чисел для желаемого цвета.