ฉันจะทำให้พื้นหลังมีTextview
ความโปร่งใสประมาณ 20% (ไม่โปร่งใสอย่างสมบูรณ์) ได้อย่างไรซึ่งมีสีในพื้นหลัง (เช่นสีขาว)
ฉันจะทำให้พื้นหลังมีTextview
ความโปร่งใสประมาณ 20% (ไม่โปร่งใสอย่างสมบูรณ์) ได้อย่างไรซึ่งมีสีในพื้นหลัง (เช่นสีขาว)
คำตอบ:
ทำให้สีมี 80% ในช่องอัลฟา ตัวอย่างเช่นสำหรับการใช้งานสีแดง#CCFF0000
:
<TextView
...
android:background="#CCFF0000" />
ในตัวอย่างเป็นจำนวนฐานสิบหกสำหรับCC
255 * 0.8 = 204
โปรดทราบว่าตัวเลขฐานสิบหกสองหลักแรกใช้สำหรับช่องอัลฟา รูปแบบคือ#AARRGGBB
ที่ใดAA
คือช่องอัลฟาRR
คือช่องสีแดงGG
เป็นช่องสีเขียวและBB
เป็นช่องสีน้ำเงิน
ฉันสมมติว่าโปร่งใส 20% หมายถึงทึบแสง 80% ถ้าคุณหมายถึงวิธีอื่น ๆ แทนการCC
ใช้งานซึ่งเป็นฐานสิบหกสำหรับ33
255 * 0.2 = 51
ในการคำนวณค่าที่เหมาะสมสำหรับค่าอัลฟาโปร่งใสคุณสามารถทำตามขั้นตอนนี้:
100-20=80
)2^8=256
) หมายถึงช่วงเริ่มจาก 0 ถึง 255255 * 0.8 = 204
นี้ ปัดเศษเป็นจำนวนเต็มที่ใกล้ที่สุดถ้าต้องการ0xCC
ในกรณีนี้มันเป็นFF0000
CCFF0000
คุณสามารถดูเอกสารเกี่ยวกับสีของ Androidได้
android:background="#CCFFFFFF"
สีด้วยความโปร่งใสตามคำถามที่ใช้
ใช้รหัสด้านล่างสำหรับสีดำ:
<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.transparentColor(R.color.border_color,10)));
คุณสามารถจัดการความทึบของสีที่เปลี่ยนแปลงตัวอักษร 2 ตัวแรกในคำจำกัดความสี:
# 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
ใช้สีที่มีค่า alpha ชอบ#33------
และตั้งเป็นพื้นหลังของ editText android:background=" "
ของคุณโดยใช้แอตทริบิวต์ของ
255 * 0.2 = 51 →ใน hex 33
คุณสามารถลองทำสิ่งต่อไปนี้:
textView.getBackground().setAlpha(51);
ที่นี่คุณสามารถตั้งค่าความทึบแสงระหว่าง 0 (เต็มโปร่งใส) ถึง 255 (ทึบแสงสมบูรณ์) 51 เป็น 20% ที่คุณต้องการ
textView
null
myImage.setAlpha(0.5f);
ใช้อัลฟ่ากับตัวเอง แต่สิ่งที่ฉันแสดงในคำตอบของฉันถูกนำไปใช้กับพื้นหลังของมุมมองที่วาดได้
ฉันมีสามมุมมอง ในมุมมองแรกฉันตั้งค่าสีเต็ม (ไม่มีตัวอักษร) ในมุมมองที่สองฉันตั้งค่าสีครึ่งหนึ่ง (0.5 อัลฟา) และในมุมมองที่สามฉันตั้งค่าสีอ่อน (0.2 อัลฟา)
คุณสามารถตั้งค่าสีใด ๆ และรับสีด้วยอัลฟาโดยใช้รหัสด้านล่าง:
<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;
}
}
รุ่น 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))
}
เสร็จสิ้น
เราสามารถทำให้โปร่งใสในทาง dis ด้วย
รหัสสีขาว - FFFFFF
ขาว 20% - # 33 FFFFFF
20% - 33
70% ขาว - # B3 FFFFFF
70% - B3
ค่าฐานสิบทั้งหมดจาก 100% เป็น 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% - ฐานข้อมูล, 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% - 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
ค่าฐานสิบหกทั้งหมดตั้งแต่ 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
ตอนนี้Android Studio 3.3และเวอร์ชันใหม่กว่ามีคุณสมบัติ inbuilt เพื่อเปลี่ยนอัลฟ่าค่าของสี
เพียงคลิกที่สีใน Android บรรณาธิการสตูดิโอและให้ค่าอัลฟาpercentage
สำหรับข้อมูลเพิ่มเติมดูภาพด้านล่าง
มีค่า XML alpha
ที่รับค่าสองเท่า
ตั้งแต่API 11+
ช่วงจาก0f
ถึง1f
(รวม) 0f
มีความโปร่งใสและ1f
ทึบแสง:
android:alpha="0.0"
นั่นคือมองไม่เห็น
android:alpha="0.5"
ดูผ่าน
android:alpha="1.0"
มองเห็นได้เต็มรูปแบบ
มันเป็นวิธีการทำงาน
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:alpha="0.9"
/>
ช่วงตั้งแต่ 0 (โปร่งใส) ถึง 1 (ทึบแสง) ใน Android API 11+
ดูความนิยมด้านล่าง 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" />
หุ่นยนต์: อัลฟา = "0.38"
Text View alpha property set 0.38 to your textView visibility is faid
ใน Kotlin คุณสามารถใช้การใช้อัลฟ่าแบบนี้
//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
}
หวังว่านี่จะช่วยคุณได้ขอบคุณ
ฉันรู้ว่าเป็นคำถามที่เก่ามาก
#ARGB
หากคุณต้องการใช้ค่าสีคุณยังสามารถใช้เวอร์ชั่นสั้นที่มี A
ค่าของช่องอัลฟ่าอยู่ที่ไหน
ในกรณีที่มีสีขาวมีค่าความโปร่งใสดังต่อไปนี้:
#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%
ดังนั้นคุณสามารถTextView
เพิ่มบรรทัดต่อไปนี้เพื่อความโปร่งใส 20%:
<TextView
android:background="#CFFF"
... />
นี่คือวิธีแก้ปัญหาเชิงโปรแกรมจากคำตอบของ@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();
}
ลองรหัสนี้ :)
มันคือรหัสเลขฐานสิบหกที่โปร่งใส- "# 00000000"
ถ้าคุณต้องการทำให้สีโปร่งใส 50% ใน kotlin
val percentage = 50f/100 //50%
ColorUtils.setAlphaComponent(resources.getColor(R.color.whatEverColor), (percentage * 255).toInt())