Jawaban:
Jadikan warnanya 80% di saluran alpha. Misalnya, untuk penggunaan merah #CCFF0000
:
<TextView
...
android:background="#CCFF0000" />
Dalam contoh, CC
adalah angka heksadesimal untuk 255 * 0.8 = 204
. Perhatikan bahwa dua digit heksadesimal pertama adalah untuk saluran alpha. Formatnya adalah #AARRGGBB
, di mana AA
saluran alfa, RR
adalah saluran merah, GG
adalah saluran hijau dan BB
merupakan saluran biru.
Saya berasumsi bahwa 20% transparan berarti 80% buram. Jika Anda bermaksud sebaliknya, alih-alih CC
gunakan 33
yang merupakan heksadesimal untuk 255 * 0.2 = 51
.
Untuk menghitung nilai yang tepat untuk nilai transparansi alfa, Anda dapat mengikuti prosedur ini:
100-20=80
)2^8=256
), yang berarti rentang bergerak dari 0 hingga 255.255 * 0.8 = 204
. Membulatkan ke bilangan bulat terdekat jika diperlukan.0xCC
.FF0000
, Anda akan memilikinya CCFF0000
.Anda dapat melihat dokumentasi Android untuk warna .
android:background="#CCFFFFFF"
.
Gunakan kode di bawah ini untuk warna hitam:
<color name="black">#000000</color>
Sekarang jika saya ingin menggunakan opacity maka Anda dapat menggunakan kode di bawah ini:
<color name="black">#99000000</color> <!-- 99 is for alpha and others pairs zero's are for R G B -->
Dan di bawah ini untuk kode opacity: dan semua level opacity di sini
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
Jika Anda selalu lupa kode transparansi apa, maka Anda harus melihat tautan di bawah ini dan tidak perlu khawatir mengingat apa pun mengenai kode transparan: -
https://github.com/duggu-hcd/TransparentColorCode
textviewHeader.setTextColor(Color.parseColor(ColorTransparentUtils.transparentColor(R.color.border_color,10)));
Anda dapat mengatur opacity warna dengan mengubah 2 karakter pertama dalam definisi warna:
# 99 000000
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
Anda dapat mencoba melakukan sesuatu seperti:
textView.getBackground().setAlpha(51);
Di sini Anda dapat mengatur opacity antara 0 (sepenuhnya transparan) ke 255 (benar-benar buram). 51 persis 20% yang Anda inginkan.
textView
variabel Anda null
.
myImage.setAlpha(0.5f);
menerapkan alfa ke tampilan itu sendiri tetapi apa yang saya tunjukkan dalam jawaban saya sedang diterapkan ke latar belakang yang dapat ditarik.
Saya telah mengambil tiga Tampilan. Pada tampilan pertama saya mengatur warna penuh (tanpa alfa), pada tampilan kedua saya mengatur warna setengah (0,5 alpha), dan pada tampilan ketiga saya mengatur warna terang (0,2 alpha).
Anda dapat mengatur warna apa saja dan mendapatkan warna dengan alfa dengan menggunakan kode di bawah ini:
<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>
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;
}
}
Versi Kotlin:
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))
}
Selesai
Kita bisa membuat transparan dengan cara juga.
Kode warna putih - FFFFFF
20% putih - # 33 FFFFFF
20% - 33
70% putih - # B3 FFFFFF
70% - B3
Semua nilai hex dari 100% menjadi 0%
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% - 67% Masehi - 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
Semua nilai hex dari 100% hingga 0% alpha, Anda dapat mengatur warna apa pun dengan nilai alpha yang disebutkan di bawah ini. mis. #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
Sekarang Android Studio 3.3 dan versi yang lebih baru menyediakan fitur bawaan untuk mengubah nilai warna Alpha ,
Cukup klik pada warna di editor studio Android dan berikan nilai Alphapercentage
.
Untuk informasi lebih lanjut lihat gambar di bawah ini
Ada nilai XML alpha
yang mengambil nilai ganda.
Karena API 11+
rentang adalah dari 0f
ke 1f
(inklusif), 0f
transparan dan 1f
menjadi buram:
android:alpha="0.0"
itu tidak terlihat
android:alpha="0.5"
tembus pandang
android:alpha="1.0"
terlihat penuh
Begitulah cara kerjanya.
Lihat Popularitas di bawah textView menggunakan ini
android:alpha="0.38"
XML
android:color="#3983BE00" // Partially transparent sky blue
Secara dinamis
btn.getBackground (). setAlpha (128); // 50% transparan
tv_name.getBackground (). setAlpha (128); // 50% transparan
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
Di Kotlin, Anda dapat menggunakan menggunakan alpha seperti ini,
//Click on On.//
view.rel_on.setOnClickListener{
view.rel_off.alpha= 0.2F
view.rel_on.alpha= 1F
}
//Click on Off.//
view.rel_off.setOnClickListener {
view.rel_on.alpha= 0.2F
view.rel_off.alpha= 1F
}
Hasilnya seperti dalam tangkapan layar ini.
Semoga ini bisa membantu Anda. Terima kasih
Saya tahu, itu pertanyaan yang sangat lama.
Jika Anda ingin menggunakan nilai warna, Anda juga dapat menggunakan versi singkatnya dengan #ARGB
. Di mana A
nilai untuk saluran alpha.
Dalam hal warna putih ada nilai transparansi berikut:
#FFFF - 0%
#EFFF - 6,7%
#DFFF - 13,3%
#CFFF - 20,0%
#BFFF - 26,7%
#AFFF - 33,3%
#9FFF - 40,0%
#FFF8 - 46,7%
#7FFF - 53,3%
#6FFF - 60,0%
#5FFF - 66,7%
#4FFF - 73,3%
#3FFF - 80,0%
#2FFF - 86,7%
#1FFF - 93,3%
#0FFF - 100,0%
Jadi Anda dapat TextView
menambahkan baris berikut untuk transparansi 20%:
<TextView
android:background="#CFFF"
... />
Berikut ini solusi terprogram dari jawaban @Aromero untuk menghitung nilai heksadesimal untuk saluran alpha. :)
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();
}