안드로이드 사용자 정의 View 베이스 - 색상

색상
@공성사 sloop
이것은 View Basic Fundamentals 의 마지막 내용으로 모든 Basic Fundamentals 가 매우 간단합니다. 대충 훑어보고 인상 깊게 연구하지 않아도 됩니다.다음 편부터 실전을 앞두고 사용자 정의뷰에서 주의해야 할 내용을 실전에서 설명한다.
하나.색상 소개
ARGB에 따라 안드로이드 색상이 정의됩니다.
A(Alpha):투명도
R(Red): 빨간색
G(Green): 그린
B(Blue): 블루
여기서 A R G B의 범위는 0~255(즉, 16진수 0x00~0xff)입니다.
A는 ox00에서 oxff까지 투명에서 불투명을 나타낸다.
RGB 0x00에서 0xff 는 색상이 옅은 색에서 깊은 색임을 나타냅니다.
둘.여러 가지 색상 생성 또는 사용 방법
1. 자바에서 색상 정의
  int color = Color.GRAY;     //  

Color 클래스에서 제공하는 색상은 제한된 몇 개에 불과하기 때문에 보통 ARGB 값으로 표시됩니다.
  int color = Color.argb(127, 255, 0, 0);   //     

  int color = 0xaaff0000;                   //        

2. xml 파일에서 색상 정의
/res/values/color.xml 파일에는 다음과 같은 정의가 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="red">#ff0000</color>
    <color name="green">#00ff00</color>
</resources>

상해: 상기 xml 파일에서 두 가지 색을 정의했습니다. 빨간색과 파란색은 알파(투명) 채널이 없습니다.
색상을 정의하는 방법은 다음과 같이 16진수 값과 함께'#'으로 시작합니다.
  #f00            //    -         
  #af00           //    -        

  #ff0000         //    -         
  #aaff0000       //    -        

그 중에서 하나의 16진수 수치로 한 색의 낮은 정밀도를 나타내는 것은 자주 사용되지 않으며, 가장 자주 사용하는 것은 두 개의 16진수 수치로 한 색의 높은 정밀도를 나타내는 것이다.
3. xml 파일에 정의된 색상 참조
1. 자바 파일에서 참조:
  int color = getResources().getColor(R.color.mycolor);

2. 다른 xml 파일(layout 또는 style)에서 인용하거나 직접 만들기
    <!-- style     -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/red</item> </style>
  android:background="@color/red"     //   /res/values/color.xml       

  android:background="#ff0000"        //    

셋.채색 도구
색깔은 모두 RGB 값으로 정의되는데 우리는 일반적으로 자신이 색깔을 필요로 하는 값을 직관적으로 알 수 없기 때문에 색채 추출 도구를 빌려 그림이나 다른 곳에서 색깔의 RGB 값을 직접 얻어야 한다.
1. 화면 색상 선택 도구
색상 팔레트 도구는 화면에서 색상을 선택하거나 팔레트를 사용하여 색상을 조정할 수 있으며 매우 작고 간소합니다.
화면 색상 찾기 도구를 보려면 누르십시오
2.Picpick
더욱 강력한 도구: PicPick.
PicPick은 전체 화면 캡처, 활성 창, 지정 영역, 고정 영역, 손으로 그린 영역 기능, 스크롤 스크린 캡처, 색상 취색, 듀얼 디스플레이 지원, 화이트보드, 화면 눈금자, 직각 좌표 또는 극 좌표 표시와 측정, 강력한 이미지 편집과 표시 기능을 갖추고 있다.
PicPick을 보려면 여기를 클릭하십시오.
넷.색상 블렌드 모드(Alpha 채널 연관)
각 Color에는 4개의 채널 ARGB가 있는데 그 중에서 RGB는 빨간색, 녹색, A는 알파 채널로 통상적으로 이 색깔의 투명도로 사용된다.
우리의 디스플레이는 투명할 수 없기 때문에 최종적으로 화면에 나타나는 색깔에는 알파 채널이 없다고 볼 수 있다.알파 채널은 두 이미지가 혼합될 때 주로 적용됩니다.
기본적으로 색상이 Canvas에 그려질 때 블렌드 모드는 다음과 같이 계산됩니다. (RGB 채널) 최종 색상 = 그려진 색상 + (1 - 그려진 색상의 투명도)× Canvas의 원래 색상입니다.
참고:
1. 여기에서 우리는 일반적으로 모든 채널의 값을 0(ox00)에서 255(0xff)까지 0에서 1까지의 부동점수로 표시한다.
2. 여기 등식 오른쪽의'그린 색','Canvas의 원래 색'은 모두 자신의 알파 채널을 미리 곱한 값이다.그림% 1개의 캡션을 편집했습니다.(0.5333 = 0x88/0xff)
이런 방식의 혼합을 사용하면 그려진 내용이 반투명하게 위에 겹치는 시각적 효과를 낼 수 있다.
사실 다른 혼합 모드를 선택할 수 있습니다. Paint를 사용하십시오.setXfermode, 다른 PorterDuff를 지정합니다.Mode.
다음 표는 각 Porter Duff 모드의 혼합 계산 공식이다. (D는 원본의Canvas에 있는 내용 dst를 가리키고 S는 입력한 내용 src를 가리키며 a는alpha 채널을 가리키고 c는 RGB의 각 채널을 가리킨다)
ADD 
Saturate(S + D)  
CLEAR 
[0, 0]  
DARKEN 
[Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + min(Sc, Dc)]  
DST 
[Da, Dc]  
DST_ATOP 
[Sa, Sa * Dc + Sc * (1 - Da)]  
DST_IN 
[Sa * Da, Sa * Dc]  
DST_OUT 
[Da * (1 - Sa), Dc * (1 - Sa)]  
DST_OVER 
[Sa + (1 - Sa)*Da, Rc = Dc + (1 - Da)*Sc]  
LIGHTEN 
[Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + max(Sc, Dc)]  
MULTIPLY 
[Sa * Da, Sc * Dc]  
SCREEN 
[Sa + Da - Sa * Da, Sc + Dc - Sc * Dc]  
SRC 
[Sa, Sc]  
SRC_ATOP 
[Da, Sc * Da + (1 - Sa) * Dc]  
SRC_IN 
[Sa * Da, Sc * Da]  
SRC_OUT 
[Sa * (1 - Da), Sc * (1 - Da)]  
SRC_OVER 
[Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc]  
XOR 
[Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + (1 - Sa) * Dc]  
예를 들어 서로 다른 모드를 사용할 때의 혼합 효과는 다음과 같다(src는 입력한 그림을 나타내고 dst는 원래의 Canvas의 내용을 나타낸다).
자세한 사용 방법은 추후 Canvas에서 설명합니다.
오.관련 내용
뷰 베이스 사용자화 - 각도 및 아치
View 베이스 - 좌표계 사용자화
여섯.참고 자료
[안드로이드 그래픽 애니메이션]
만약 문장에 무슨 결함이나 오류가 있으면 평론 구역에서 저에게 일깨워 주시거나 사적으로 저를 믿어 주십시오. 마지막으로 당신이 괜찮다고 생각하고 당신에게 도움이 된다면 저에게 좋아요를 눌러 주셔서 감사합니다.( ̄︶ ̄)↗[GO!]

좋은 웹페이지 즐겨찾기