안 드 로 이 드 매트릭스 ColorMatrix

3272 단어 AndroidColorMatrix
좌표 행렬
고등 수학 에 서 는 이미지 처리 에 있어 평면 크기 조정,이동,회전 등에 사용 된다 고 소개 했다.
Android 에서 Matrix 는 9 개의 float 값 으로 구성 되 어 있 으 며 3*3 의 행렬 입 니 다.기억 하 는 게 좋 을 거 야.아래 그림

각 필드 의 의미:
위의 sinX 와 cosX 는 회전 각 도 를 나타 내 는 cos 값 과 sin 값 을 나타 내 며 회전 각 도 는 시계 방향 으로 계산 된다.
translate X 와 translate Y 는 x 와 y 의 평 이 량 을 나타 낸다.scale 은 크기 조정 비율 입 니 다.1 은 변 하지 않 습 니 다.2 는 1/2 크기 조정 을 표시 합 니 다.이렇게 합 니 다.
어떻게 사용 합 니까?
set,pre,post 방법
Matrix 가 일련의 set,pre,post 방법 을 호출 할 때 이 방법 들 을 하나의 대기 열 에 삽입 하 는 것 으로 볼 수 있 습 니 다.물론 대기 열 에서 처음부터 끝까지 호출 하여 실행 합 니 다.
그 속
pre 는 팀 머리 에 방법 을 삽입 하 는 것 을 나타 낸다.
post 는 팀 끝 에 방법 을 삽입 하 는 것 을 표시 합 니 다.
set 는 현재 대기 열 을 비우 고 항상 대기 열의 가장 중간 위치 에 있 음 을 표시 합 니 다.
set 를 한 번 실행 한 후:pre 방법 은 항상 set 앞부분 의 대기 열의 맨 앞 에 삽입 되 고,post 방법 은 항상 set 뒷부분 의 대기 열의 맨 뒤에 삽 입 됩 니 다
예 1:

Matrix m = new Matrix();
m.setRotate(45); 
m.setTranslate(80, 80);
m.setTranslate(80,80)만 유효 합 니 다.m.setRotate(45)때 문 입 니 다.제거 되 었 습 니 다.
예 2:

Matrix m = new Matrix();
m.setTranslate(80, 80);
m.postRotate(45);
m.setTranslate(80,80)를 먼저 실행 합 니 다.m.postRotate(45)를 실행 합 니 다.
예 3:

Matrix m = new Matrix();
m.setTranslate(80, 80);
m.preRotate(45);
m.setTranslate(80,80)를 먼저 실행 합 니 다.m.preRotate(45)를 실행 합 니 다.
예 4:

Matrix m = new Matrix();
m.preScale(2f,2f);  
m.preTranslate(50f, 20f);  
m.postScale(0.2f, 0.5f);  
m.postTranslate(20f, 20f); 
실행 순서:m.preTranslate(50f,20f)-->m.preScale(2f,2f)-->m.postScale(0.2f,0.5f)-->m.postTranslate(20f,20f)
메모:m.preTranslate(50f,20f)는 m.preScale(2f,2f)보다 먼저 실 행 됩 니 다.대기 열의 맨 앞 단 을 찾 았 기 때 문 입 니 다.
예 5:

Matrix m = new Matrix();
m.postTranslate(20, 20);  
m.preScale(0.2f, 0.5f);
m.setScale(0.8f, 0.8f);  
m.postScale(3f, 3f);
m.preTranslate(0.5f, 0.5f);
실행 순서:m.preTranslate(0.5f,0.5f)-->m.setScale(0.8f,0.8f)-->m.postScale(3f,3f)
메모:m.setScale(0.8f,0.8f)은 앞의 m.postTranslate(20,20)와 m.preScale(0.2f,0.5f)을 제거 합 니 다.  
기타 구체 적 인 방법 예 를 들 면:
1.setTranslate(float ds,float dy):Matrix 를 제어 하여 이동 합 니 다.
2.setSkew(float kx,float ky,float px,float py):Matrix 를 제어 하여 px,py 를 축 으로 기울 입 니 다.kx,ky 는 X,Y 방향의 경사 거리 이다.
3.setSkew(float kx,float ky):매트릭스 의 경사 조절.kx,ky 는 X,Y 방향의 경사 거리 이다.
4.setRotate(float degrees):Matrix 를 제어 하여 회전 을 하고 degrees 는 회전 각 도 를 제어 합 니 다.
5.setRotate(float degrees,float px,float py):px,py 를 축 으로 회전 시 키 고 degrees 가 회전 하 는 각 도 를 제어 하도록 설정 합 니 다.
6.setScale(float sx,float sy):Matrix 를 설정 하여 크기 를 조정 하고 sx,sy 제어 X,Y 방향의 크기 를 조정 합 니 다.
7.setScale(float sx,float sy,float px,float py):Matrix 를 px,py 를 축 으로 크기 조정 하고 sx,sy 제어 X,Y 방향의 크기 조정 비율 을 설정 합 니 다.
마지막 에 쓰기:
여기 서 그림 을 이동,회전 등 으로 처리 합 니 다.Matrix 류 를 제외 하고 Animation 애니메이션 을 통 해 도 실현 할 수 있 습 니 다.
그들 사이 의 차이 점 은:
1.Matrix 류 를 사용 할 때 그림 의 이동 과 회전 은 컨트롤 위 에 만 있 습 니 다.이 안 에는 컨트롤 자체 가 움 직 이지 않 았 고 컨트롤 안의 내용 이 움 직 였 다.실제 할 때 컨트롤 자체 의 크기 를 고려 해 야 합 니 다.초과 부분 은 표시 되 지 않 기 때 문 입 니 다.
2.애니메이션 애니메이션 을 사용 하여 이 루어 질 때 컨트롤 자 체 를 움 직 입 니 다.

좋은 웹페이지 즐겨찾기