Yanıtlar:
Alfa kanalında rengin% 80 olmasını sağlayın. Örneğin, kırmızı kullanım için #CCFF0000
:
<TextView
...
android:background="#CCFF0000" />
Örnekte, CC
için onaltılık sayıdır 255 * 0.8 = 204
. İlk iki onaltılık basamağın alfa kanalı için olduğunu unutmayın. Biçim #AARRGGBB
, burada AA
alfa kanalı, RR
kırmızı kanal, GG
yeşil kanal ve BB
mavi kanaldır.
% 20 şeffaflığın% 80 opak olduğunu varsayıyorum. Eğer başka türlü demek istediyseniz, bunun yerine onaltılık olan CC
kullanım yerine .33
255 * 0.2 = 51
Bir alfa saydamlık değeri için uygun değeri hesaplamak için şu prosedürü takip edebilirsiniz:
100-20=80
)2^8=256
), yani aralık 0 ila 255 arasındadır.255 * 0.8 = 204
. Gerekirse en yakın tam sayıya yuvarlayın.0xCC
.FF0000
sahip olacaksınız CCFF0000
.Renkler için Android belgelerine göz atabilirsiniz .
android:background="#CCFFFFFF"
.
Siyah için aşağıdaki kodu kullanın:
<color name="black">#000000</color>
Şimdi donukluk kullanmak istiyorsanız, aşağıdaki kodu kullanabilirsiniz:
<color name="black">#99000000</color> <!-- 99 is for alpha and others pairs zero's are for R G B -->
Opaklık kodu için aşağıda: ve burada tüm opaklık seviyesi
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
Şeffaflık için hangi kodu unutursanız, aşağıdaki bağlantıyı görmeniz ve şeffaf kodla ilgili bir şeyi hatırlamak konusunda endişelenmeniz gerekmez:
https://github.com/duggu-hcd/TransparentColorCode
textviewHeader.setTextColor(Color.parseColor(ColorTransparentUtils.transparentColor(R.color.border_color,10)));
Renk tanımındaki ilk 2 karakteri değiştirerek renk opaklığını yönetebilirsiniz:
# 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
Gibi bir şey yapmaya çalışabilirsiniz:
textView.getBackground().setAlpha(51);
Burada opaklığı 0 (tamamen şeffaf) ile 255 (tamamen opak) arasında ayarlayabilirsiniz. 51 tam istediğiniz% 20.
textView
değişkeniniz null
.
myImage.setAlpha(0.5f);
alfa Görünüm'ün kendisine uygulanır, ancak cevabımda gösterdiğim görünümün çizilebilir arka planına uygulanır.
Üç kez baktım. İlk görünümde tam (alfa yok) renk ayarlıyorum, ikinci görünümde yarım (0,5 alfa) renk ayarladım ve üçüncü görünümde açık renk (0,2 alfa) ayarladım.
Aşağıdaki kodu kullanarak istediğiniz rengi ayarlayabilir ve alfa ile renk alabilirsiniz:
<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 versiyonu:
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))
}
Bitti
Dis şekilde de şeffaf yapabiliriz.
Beyaz renk kodu - FFFFFF
% 20 beyaz - # 33 FFFFFF
% 20 - 33
% 70 beyaz - # B3 FFFFFF
% 70 - B3
Tüm hex değerleri% 100'den% 0'a
% 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üm hex değerleri% 100 ila% 0 alfa, Aşağıda belirtilen alfa değerleriyle herhangi bir renk ayarlayabilirsiniz. örneğin #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
Şimdi Android Studio 3.3 ve sonraki sürümler bir Alfa'yı değiştirmek için dahili bir özellik sunuyor , rengin değerini ,
Android studio editöründe bir renge tıklayın ve Alpha değerini girinpercentage
.
Daha fazla bilgi için aşağıdaki resme bakın
alpha
Çift değer alan bir XML değeri var.
Yana API 11+
mertebesi 0f
için 1f
(dahil), 0f
şeffaf ve 1f
opak olma:
android:alpha="0.0"
bu görünmez
android:alpha="0.5"
transparan
android:alpha="1.0"
tam görünür
İşte böyle çalışır.
Aşağıdaki popülerliğe bakınız
android:alpha="0.38"
XML
android:color="#3983BE00" // Partially transparent sky blue
Dinamik
btn.getBackground () setAlpha (128).; //% 50 şeffaf
tv_name.getBackground () setAlpha (128).; //% 50 şeffaf
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" />
robot: a = "0.38"
Text View alpha property set 0.38 to your textView visibility is faid
Kotlin'de böyle alfa kullanarak kullanabilirsiniz,
//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
}
Sonuç bu ekran çekimlerinde olduğu gibidir.
Umarım bu size yardımcı olacaktır.
Biliyorum, bu çok eski bir soru.
Bir renk değeri kullanmak istiyorsanız, bunun kısa sürümünü de ile kullanabilirsiniz #ARGB
. A
Alfa kanalının değeri nerede .
Beyaz renk olması durumunda aşağıdaki saydamlık değerleri vardır:
#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%
Böylece TextView
% 20 şeffaflık için aşağıdaki satırı ekleyebilirsiniz:
<TextView
android:background="#CFFF"
... />
Alfa kanalı için onaltılık değeri hesaplamak için @Aromero'nun cevabından programlı bir çözüm . :)
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();
}