[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);
'Andorid' 카테고리의 다른 글
[Android / Java] Camera 촬영 및 내부/외부 저장소에 저장 (8) | 2020.12.06 |
---|---|
[Android / Java] 권한설정 (1) | 2020.12.06 |
[Android] Layout / View Group의 종류 1. Linear Layout (1) | 2020.12.02 |
[Android / Java] ViewHolder를 이용한 Custom Adapter 만들기 (2) | 2020.11.27 |
[Android / Java] Programmatic하게 레이아웃을 만들기 (3) | 2020.11.24 |