Как сделать фон 20% прозрачным на Android
Как мне сделать фон Textview
около 20% прозрачной (не полностью прозрачный), где есть цвет в фоновом режиме (т. е. белый)?
14 ответов:
сделайте цвет иметь 80% в альфа-канале. Например, для красного используйте
#CCFF0000
:<TextView ... android:background="#CCFF0000" />
в частности,
CC
- шестнадцатеричное число для255 * 0.8 = 204
. Обратите внимание, что первые две шестнадцатеричные цифры относятся к Альфа-каналу. Формат#AARRGGBB
, гдеAA
альфа-канал,RR
- это красный канал,GG
зеленый канал иBB
- это синий канал.я предполагаю, что 20% прозрачный означает 80% непрозрачный. Если вы имели в виду по-другому, вместо
CC
использовать33
который является шестнадцатеричным для255 * 0.2 = 51
.чтобы вычислить правильное значение для значения Альфа-прозрачности, вы можете выполнить следующую процедуру:
- учитывая процент прозрачности, например 20%, вы знаете, что непрозрачное процентное значение составляет 80% (это
100-20=80
)- диапазон для альфа-канала-8 бит (
2^8=256
), т. е. диапазон от 0 до 255.- проект непрозрачный процент в альфа-диапазоне, то есть умножьте диапазон (255) на процент. В этом примере
255 * 0.8 = 204
. Округлить до ближайшего целого числа, если это необходимо.- преобразовать полученное значение в 3., который находится в базе 10, до шестнадцатеричного (база 16). Вы можете использовать Google для этого или любого калькулятора. Используя Google, введите "204 в hexa", и это даст вам шестнадцатеричное значение. В данном случае это
0xCC
.- добавить значение, полученное в 4. до нужного цвета. Например, для красный, который
FF0000
, у вас будетCCFF0000
.вы можете взглянуть на Android документация для цветов.
используйте приведенный ниже код для черного:
<color name="black">#000000</color>
теперь, если я хочу использовать непрозрачность, то вы можете использовать следующий код:
<color name="black">#99000000</color> <!-- 99 is for alpha and others pairs zero's are for R G B -->
и ниже для кода непрозрачности: и весь уровень непрозрачности здесь
Шестнадцатеричные Значения Непрозрачности
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
если вы всегда забываете, какой код для прозрачности, то вы должны увидеть ниже ссылку и не беспокоиться о том, чтобы помнить что-нибудь о прозрачном коде : -
https://github.com/duggu-hcd/TransparentColorCode
textviewHeader.setTextColor(Color.parseColor(ColorTransparentUtils.transparentColor10(R.color.border_color)));
вы можете управлять непрозрачностью цвета, изменяя первые 2 символа в определении цвета:
#99000000
100% — FF 99% — FC 98% — FA 97% — F7 96% — F5 95% — F2 94% — F0 93% — ED 92% — EB 91% — E8 90% — E6 89% — E3 88% — E0 87% — DE 86% — DB 85% — D9 84% — D6 83% — D4 82% — D1 81% — CF 80% — CC 79% — C9 78% — C7 77% — C4 76% — C2 75% — BF 74% — BD 73% — BA 72% — B8 71% — B5 70% — B3 69% — B0 68% — AD 67% — AB 66% — A8 65% — A6 64% — A3 63% — A1 62% — 9E 61% — 9C 60% — 99 59% — 96 58% — 94 57% — 91 56% — 8F 55% — 8C 54% — 8A 53% — 87 52% — 85 51% — 82 50% — 80 49% — 7D 48% — 7A 47% — 78 46% — 75 45% — 73 44% — 70 43% — 6E 42% — 6B 41% — 69 40% — 66 39% — 63 38% — 61 37% — 5E 36% — 5C 35% — 59 34% — 57 33% — 54 32% — 52 31% — 4F 30% — 4D 29% — 4A 28% — 47 27% — 45 26% — 42 25% — 40 24% — 3D 23% — 3B 22% — 38 21% — 36 20% — 33 19% — 30 18% — 2E 17% — 2B 16% — 29 15% — 26 14% — 24 13% — 21 12% — 1F 11% — 1C 10% — 1A 9% — 17 8% — 14 7% — 12 6% — 0F 5% — 0D 4% — 0A 3% — 08 2% — 05 1% — 03 0% — 00
используйте цвет с Альфа-значением, например
#33------
, и установить его в качестве фона вашего editText с помощью атрибута XMLandroid:background=" "
.
- 0% (прозрачный) -> #00 в hex
- 20% -> #33
- 50% -> #80
- 75% - > #C0
- 100% (непрозрачный) - > #FF
255 * 0.2 = 51 → in hex 33
можно попробовать сделать что-то вроде:
textView.getBackground().setAlpha(51);
здесь вы можете установить прозрачность от 0 (полностью прозрачный) до 255 (полностью непрозрачный). 51-это именно те 20%, которые вы хотите.
Я принял три точки зрения. В первом представлении я установил полный (без Альфа) цвет, на втором представлении я установил половину (0,5 Альфа) цвета, а на третьем представлении я установил светлый цвет (0,2 Альфа).
вы можете установить любой цвет и сделать цвет с Альфой, используя ниже код:
File activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools = "http://schemas.android.com/tools" android:layout_width = "match_parent" android:layout_height = "match_parent" android:gravity = "center" android:orientation = "vertical" tools:context = "com.example.temp.MainActivity" > <View android:id = "@+id/fullColorView" android:layout_width = "100dip" android:layout_height = "100dip" /> <View android:id = "@+id/halfalphaColorView" android:layout_width = "100dip" android:layout_height = "100dip" android:layout_marginTop = "20dip" /> <View android:id = "@+id/alphaColorView" android:layout_width = "100dip" android:layout_height = "100dip" android:layout_marginTop = "20dip" /> </LinearLayout>
File MainActivity.java
public class MainActivity extends Activity { private View fullColorView, halfalphaColorView, alphaColorView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fullColorView = (View)findViewById(R.id.fullColorView); halfalphaColorView = (View)findViewById(R.id.halfalphaColorView); alphaColorView = (View)findViewById(R.id.alphaColorView); fullColorView.setBackgroundColor(Color.BLUE); halfalphaColorView.setBackgroundColor(getColorWithAlpha(Color.BLUE, 0.5f)); alphaColorView.setBackgroundColor(getColorWithAlpha(Color.BLUE, 0.2f)); } private int getColorWithAlpha(int color, float ratio) { int newColor = 0; int alpha = Math.round(Color.alpha(color) * ratio); int r = Color.red(color); int g = Color.green(color); int b = Color.blue(color); newColor = Color.argb(alpha, r, g, b); return newColor; } }
Котлин версия:
private fun getColorWithAlpha(color: Int, ratio: Float): Int { return Color.argb(Math.round(Color.alpha(color) * ratio), Color.red(color), Color.green(color), Color.blue(color)) }
сделал
существует значение XML
alpha
Это принимает двойные значения.С
API 11+
диапазон от0f
до1f
(включительно),0f
быть прозрачным и1f
тупить:
android:alpha="0.0"
то невидимым
android:alpha="0.5"
прозрачный
android:alpha="1.0"
полный виднавот как это работает.
все шестнадцатеричное значение от 100% до 0% Альфа, вы можете установить любой цвет с Альфа-значениями, указанными ниже. например #FAFFFFFF (ARRGGBB)
100% — FF 99% — FC 98% — FA 97% — F7 96% — F5 95% — F2 94% — F0 93% — ED 92% — EB 91% — E8 90% — E6 89% — E3 88% — E0 87% — DE 86% — DB 85% — D9 84% — D6 83% — D4 82% — D1 81% — CF 80% — CC 79% — C9 78% — C7 77% — C4 76% — C2 75% — BF 74% — BD 73% — BA 72% — B8 71% — B5 70% — B3 69% — B0 68% — AD 67% — AB 66% — A8 65% — A6 64% — A3 63% — A1 62% — 9E 61% — 9C 60% — 99 59% — 96 58% — 94 57% — 91 56% — 8F 55% — 8C 54% — 8A 53% — 87 52% — 85 51% — 82 50% — 80 49% — 7D 48% — 7A 47% — 78 46% — 75 45% — 73 44% — 70 43% — 6E 42% — 6B 41% — 69 40% — 66 39% — 63 38% — 61 37% — 5E 36% — 5C 35% — 59 34% — 57 33% — 54 32% — 52 31% — 4F 30% — 4D 29% — 4A 28% — 47 27% — 45 26% — 42 25% — 40 24% — 3D 23% — 3B 22% — 38 21% — 36 20% — 33 19% — 30 18% — 2E 17% — 2B 16% — 29 15% — 26 14% — 24 13% — 21 12% — 1F 11% — 1C 10% — 1A 9% — 17 8% — 14 7% — 12 6% — 0F 5% — 0D 4% — 0A 3% — 08 2% — 05 1% — 03 0% — 00
<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:alpha="0.9" />
Альфа-диапазоны между 0 (прозрачный) и 1(непрозрачный) в Android API 11+
мы можем сделать прозрачным таким образом также.
белый цветовой код-FFFFFF
70% белый - #B3FFFFFF.
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
смотрите популярность ниже textView с помощью этого
android:alpha="0.38"
XML
android:color="#3983BE00" // Partially transparent sky blue
динамически
btn.getBackground ().setAlpha(128); // 50% прозрачный
tv_name.getBackground ().setAlpha(128); // 50% прозрачный
Where the INT ranges from 0 (fully transparent) to 255 (fully opaque). <TextView style="@style/TextAppearance.AppCompat.Caption" android:layout_width="match_parent" android:layout_height="wrap_content" android:alpha="0.38" android:gravity="start" android:textStyle="bold" tools:text="1994|EN" />
android: alpha= "0.38"
Text View alpha property set 0.38 to your textView visibility is faid
вот программное решение от @Aromeroответ для вычисления шестнадцатеричного значения для альфа-канала. :)
public static void main(String[] args) throws Exception { final Scanner scanner = new Scanner(System.in); int transPerc; float fPerc; System.out.println("Enter the transparency percentage without % symbol:"); while((transPerc=scanner.nextInt())>=0 && transPerc <=100){ fPerc = (float) transPerc / 100; transPerc = Math.round(255 * fPerc); System.out.println("= " + Integer.toHexString(transPerc)); System.out.print("another one please : "); } scanner.close(); }