-->
728x90

[Android]

배경(XML)에 투명도(Opacity) 적용

 

* 목표 : xml을 이용해 레이아웃에 Opacity를 적용하도록 한다.

 

안드로이드 색상 형식은 #AARRGGBB이고 앞에 'AA' 부분이 알파채널 16진수이다. 

이 부분을 바꿔서 투명도를 적용시킬 수 있다. 

 

알파 채널의 범위는 8비트 이기 때문에 0~255 값을 갖는다.

1. 내가 적용시킬 투명도에 255를 곱해 반올림한다. (255 * 0.7 = 178.5 179 )

2. 나온 수를 16진수 헥사코드로 변경한다. (Google에서 '179 to Hexa' 검색 시 '0xB3' )

3. 이제 나온 값으로 알파채널을 변경해주면 된다. (#B3000000)

 

아래는 16진수 투명도 값 목록이다.

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

안드로이드 스튜디오를 쓰는 또구또구잉이라면 value/colors.xml 에 미리 등록해주자.

    <!--Opacity-->
    
    <color name="o5">#0D000000</color>
    <color name="o10">#1A000000</color>
    <color name="o15">#26000000</color>
    <color name="o20">#33000000</color>
    <color name="o25">#40000000</color>
    <color name="o30">#4D000000</color>
    <color name="o35">#59000000</color>
    <color name="o40">#66000000</color>
    <color name="o45">#73000000</color>
    <color name="o50">#80000000</color>
    <color name="o55">#8C000000</color>
    <color name="o60">#99000000</color>
    <color name="o65">#A6000000</color>
    <color name="o70">#B3000000</color>
    <color name="o75">#BF000000</color>
    <color name="o80">#CC000000</color>
    <color name="o85">#D9000000</color>
    <color name="o90">#E6000000</color>
    <color name="o95">#F2000000</color>

xml에서 불러올 때는 android:background = "@color/o70"

코드에서 programmatic 하게 불러올 때는

//String 으로 입력
layout.setBackgroundColor(Color.parseColor("#83000000"));

//또구또구하게 value값 이용
int myColor = ContextCompat.getColor(getContext(), R.color.o70);
layout.setBackgroundColor(myColor);

 

 

 

 

반응형

+ Recent posts