Câu trả lời:
Làm cho màu sắc có 80% trong kênh alpha. Ví dụ: để sử dụng màu đỏ #CCFF0000
:
<TextView
...
android:background="#CCFF0000" />
Trong ví dụ, CC
là số thập lục phân cho 255 * 0.8 = 204
. Lưu ý rằng hai chữ số thập lục phân đầu tiên là dành cho kênh alpha. Định dạng là #AARRGGBB
, AA
kênh alpha ở đâu, RR
là kênh màu đỏ, GG
là kênh màu xanh lá cây và BB
là kênh màu xanh.
Tôi giả định rằng 20% trong suốt có nghĩa là 80% mờ đục. Nếu bạn có ý nghĩa khác, thay vì CC
sử dụng 33
đó là hệ thập lục phân cho 255 * 0.2 = 51
.
Để tính giá trị phù hợp cho giá trị trong suốt alpha, bạn có thể làm theo quy trình này:
100-20=80
)2^8=256
), có nghĩa là phạm vi đi từ 0 đến 255.255 * 0.8 = 204
. Làm tròn đến số nguyên gần nhất nếu cần.0xCC
.FF0000
, bạn sẽ có CCFF0000
.Bạn có thể xem tài liệu Android về màu sắc .
android:background="#CCFFFFFF"
.
Sử dụng mã dưới đây cho màu đen:
<color name="black">#000000</color>
Bây giờ nếu tôi muốn sử dụng opacity thì bạn có thể sử dụng đoạn mã dưới đây:
<color name="black">#99000000</color> <!-- 99 is for alpha and others pairs zero's are for R G B -->
Và bên dưới cho mã độ mờ: và tất cả mức độ mờ ở đây
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
Nếu bạn luôn quên mã nào để minh bạch thì bạn phải xem liên kết bên dưới và không phải lo lắng về việc nhớ bất cứ điều gì liên quan đến mã minh bạch: -
https://github.com/duggu-hcd/TransparentColorCode
textviewHeader.setTextColor(Color.parseColor(ColorTransparentUtils.transparentColor(R.color.border_color,10)));
Bạn có thể quản lý độ mờ màu thay đổi 2 ký tự đầu tiên trong định nghĩa màu:
# 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
Bạn có thể thử làm một cái gì đó như:
textView.getBackground().setAlpha(51);
Tại đây bạn có thể đặt độ mờ giữa 0 (hoàn toàn trong suốt) thành 255 (hoàn toàn mờ). Con số 51 chính xác là 20% bạn muốn.
textView
biến của bạn là null
.
myImage.setAlpha(0.5f);
áp dụng alpha cho chính Chế độ xem nhưng những gì tôi hiển thị trong câu trả lời của mình đang được áp dụng cho nền có thể vẽ được của Chế độ xem.
Tôi đã thực hiện ba lượt xem. Ở chế độ xem thứ nhất, tôi đặt màu đầy đủ (không có alpha), ở chế độ xem thứ hai, tôi đặt một nửa (0,5 alpha) màu và ở chế độ xem thứ ba, tôi đặt màu sáng (0,2 alpha).
Bạn có thể đặt bất kỳ màu nào và nhận màu bằng alpha bằng cách sử dụng mã dưới đây:
<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;
}
}
Phiên bản 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))
}
Làm xong
Chúng tôi có thể làm cho minh bạch trong cách dis cũng.
Mã màu trắng - FFFFFF
20% trắng - # 33 FFFFFF
20% - 33
70% trắng - # B3 FFFFFF
70% - B3
Tất cả giá trị hex từ 100% đến 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% - 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
Tất cả giá trị hex từ 100% đến 0% alpha, Bạn có thể đặt bất kỳ màu nào với các giá trị alpha được đề cập bên dưới. ví dụ: #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
Bây giờ Android Studio 3.3 và phiên bản mới hơn cung cấp tính năng sẵn có để thay đổi giá trị Alpha của màu,
Chỉ cần nhấp vào một màu trong trình chỉnh sửa studio Android và cung cấp giá trị Alphapercentage
.
Để biết thêm thông tin xem hình ảnh dưới đây
Có một giá trị XML alpha
lấy giá trị gấp đôi.
Vì API 11+
phạm vi là từ 0f
đến 1f
(bao gồm), 0f
nên trong suốt và 1f
mờ đục:
android:alpha="0.0"
đó là vô hình
android:alpha="0.5"
nhìn xuyên qua
android:alpha="1.0"
nhìn thấy đầy đủ
Đó là cách nó hoạt động.
Xem mức độ phổ biến bên dưới textView bằng cách sử dụng này
android:alpha="0.38"
XML
android:color="#3983BE00" // Partially transparent sky blue
Tự động
btn.getBackground (). setAlpha (128); // 50% trong suốt
tv_name.getBackground (). setAlpha (128); // 50% trong suốt
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
Trong Kotlin, bạn có thể sử dụng alpha như thế này,
//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
}
Kết quả giống như trong ảnh chụp màn hình này.
Hy vọng điều này sẽ giúp bạn. Cảm ơn
Tôi biết, đó là một câu hỏi rất cũ.
Nếu bạn muốn sử dụng một giá trị màu, bạn cũng có thể sử dụng phiên bản ngắn của nó với #ARGB
. Đâu A
là giá trị cho kênh alpha.
Trong trường hợp màu trắng, có các giá trị trong suốt sau:
#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%
Vì vậy, bạn có thể TextView
thêm dòng sau để minh bạch 20%:
<TextView
android:background="#CFFF"
... />
Đây là một giải pháp lập trình từ câu trả lời của @Aromero để tính giá trị thập lục phân cho kênh 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();
}