안드로이드 사용자 정의 View 베이스 - 색상
6122 단어 androidviewcolor사용자 정의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!]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.