Android'de% 20'lik bir arka plan nasıl şeffaf yapılır?


Yanıtlar:


1038

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, CCiç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 AAalfa kanalı, RRkırmızı kanal, GGyeşil kanal ve BBmavi 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 CCkullanım yerine .33255 * 0.2 = 51

Bir alfa saydamlık değeri için uygun değeri hesaplamak için şu prosedürü takip edebilirsiniz:

  1. Şeffaflık yüzdesi verildiğinde, örneğin% 20, opak yüzde değerinin% 80 olduğunu biliyorsunuz (bu 100-20=80)
  2. Alfa kanalı için aralık 8 bittir ( 2^8=256), yani aralık 0 ila 255 arasındadır.
  3. Opak yüzdeyi alfa aralığına yansıtın, yani aralığı (255) yüzde ile çarpın. Bu örnekte 255 * 0.8 = 204. Gerekirse en yakın tam sayıya yuvarlayın.
  4. Taban 10'da olan 3.'de elde edilen değeri onaltılık (taban 16) olarak dönüştürün. Google'ı bu hesap makinesi veya herhangi bir hesap makinesi için kullanabilirsiniz. Google'ı kullanarak "204 ila hexa" yazın, bu size onaltılık değer verecektir. Bu durumda öyle 0xCC.
  5. 4. elde edilen değeri istenen renge getirin. Örneğin, kırmızı için, yani FF0000sahip olacaksınız CCFF0000.

Renkler için Android belgelerine göz atabilirsiniz .


İçin beyaz soruya göre şeffaflık renk, kullanmak android:background="#CCFFFFFF".
gotwo

Bu kuralı resimli bir arka plan için nasıl uygulanır?
user1090751

1517

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

Onaltılık Opaklık Değerleri

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)));

3
# 99ffffff kullandım ve benim için iyi çalıştı, teşekkürler
nawaab saab

Bu kuralı resimli bir arka plan için nasıl uygulanır?
user1090751

149

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 

1
Bu mevcut cevaplara ne katıyor?
Code-Apprentice

6
@ Code-Apprentice Sanırım bu cevap, material.google.com/style/color.html#color-color-schemes
Bruce

5
Evet, dün% 13'lük bir alfa yönetme ihtiyacım vardı ve arama sonucumu bu yararlı konuya eklemeye karar verdim.
carlol

LinearLayout'u herhangi bir renksiz şeffaf hale getirmek istersem ne olur?
Si8

1
Tüm görünümler varsayılan olarak saydamdır, programlı olarak mLinearLayout.setBackgroundColor (Color.TRANSPARENT) kullanabilirsiniz; veya android: background = "@ android: color / şeffaf"
xml'nizde

106

Alfa değeri gibi bir renk kullanın #33------ve XML niteliğini kullanarak editText öğenizin arka planı olarak ayarlayın android:background=" ".

  1. % 0 (şeffaf) -> # 00 altıgen şeklinde
  2. % 20 -> # 33
  3. % 50 -> # 80
  4. % 75 -> # C0
  5. % 100 (opak) -> #FF

255 * 0.2 = 51 → altıgen 33'te


91

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.


17
@koti, çünkü textViewdeğişkeniniz null.
yugidroid

güzel zarif bir çözüm. Bunu seçerken bir liste öğesi arka planına uygulayabiliyorum - bu yüzden biraz renk alıyorum, ancak öğe metniyle rekabet etmiyor .. Çok güzel, teşekkürler!
Gene Bo

setAlpha (int), 0'ın tamamen şeffaf ve 1'in tamamen opak olduğu setAlpha (float) lehine kullanımdan kaldırılmıştır myImage.setAlpha (0.5f);
polmabri

@polmabri, pek değil. 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.
yugidroid

Bu grafik hatalara neden olabilir! Dikkatli kullanın ve çok sayıda test yapın.
Michael

74

Android Studio'da renk ve alfa / opaklık değerini ayarlamak için yerleşik bir araç vardır :

Android Renk Opaklığını Ayarla


32

Ekran görüntüsüne bakın

Üç 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:

Dosya etkinliği_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>

MainActivity.java Dosyası

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


30

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


1
Şaşırtıcı cevap. Aynen böyle devam.
Tarun

22

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

19

Ş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

resim açıklamasını buraya girin


18

alphaÇift değer alan bir XML değeri var.

Yana API 11+mertebesi 0fiçin 1f(dahil), 0fşeffaf ve 1fopak 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.


1
içeriği de dahil olmak üzere tüm düzeni yarı şeffaf hale getirecek
jack_the_beast

7
<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:alpha="0.9"
        />

Android API 11+ sürümünde alfa 0 (şeffaf) ile 1 (opak) arasında değişir


3

Aşağıdaki popülerliğe bakınız

     android:alpha="0.38"

resim açıklamasını buraya girin

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 

3

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.% 20 Şeffaf

Umarım bu size yardımcı olacaktır.


1

Biliyorum, bu çok eski bir soru.

Bir renk değeri kullanmak istiyorsanız, bunun kısa sürümünü de ile kullanabilirsiniz #ARGB. AAlfa 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"
    ... />

0

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();
}

3
Soru Android için etiketlendi. Bu kod Android'i desteklemiyor.
Pawan

0

Bu kodu deneyin :)

Onun tamamen şeffaf bir onaltılık kod - "# 00000000"


0

kotlin'de rengi% 50 şeffaf yapmak istiyorsanız,

val percentage = 50f/100 //50%
ColorUtils.setAlphaComponent(resources.getColor(R.color.whatEverColor), (percentage * 255).toInt())
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.