아무런 조작이 없는 경우
실행결과

이미지 앞, 뒤로 투명한 배경이 있음을 유의하자! (ImagView의 배경색이 흰색인 상태임)
시계방향으로 10도 회전하는 경우
실행결과

시계방향으로 60도 회전하는 경우
실행결과

반시계 방향으로 15도 회전하는 경우
실행결과

반시계 방향으로 15도 회전시키고, 아래로 이동시키기
실행결과

오른쪽으로 기울이기
실행결과

뒤쪽을 올리고, 아래로 이동시키기
실행결과
안드로이드에서 비트맵 이미지를 요래조래 조작하는 방법은
(1) ImageView에 matrix를 적용해 두고, 멀정한 비트맵 이미지를 갖다 붙이는 방법과
(2) ImageView는 가만히 냅두고, 비트맵이미지를 조작해서 갖다 붙이는 방법이 있는데
ImageView에 matrix를 적용해두고 비트맵을 갖다 붙이는 방법이 더 쉬운것 같다. (개인의 취향)
다만 이미지를 조작한 다음에 해당 이미지와 좌상단 꼭지점이 어디에 있는지 알면 그림을 적당한 곳에 옮기기가 더 쉬울것 같은데.....
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 |
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); // 이미지 붙일 곳을 가져오고 ImageView view = (ImageView) this .findViewById(R.id.imageView); // 비트맵 가져오고 Bitmap origBitmap = this .loadBitmap(); // 매트릭스 만들고 Matrix m = this .getMatrix(); // 이미지 뷰에 적용 view.setScaleType(ScaleType.MATRIX); view.setImageMatrix(m); // 비트맵 붙이기 view.setImageBitmap(origBitmap); } /** * 실험용 matrix 만들기 * @return */ private Matrix getMatrix() { Matrix m = new Matrix(); return m; } /** * 실험용 이미지 읽어오기 * @return */ private Bitmap loadBitmap() { BitmapDrawable back = (BitmapDrawable) this .getResources().getDrawable(R.drawable.test_img); Bitmap bitmap = back.getBitmap(); return bitmap; } } |
실행결과
이미지 앞, 뒤로 투명한 배경이 있음을 유의하자! (ImagView의 배경색이 흰색인 상태임)
시계방향으로 10도 회전하는 경우
1
2
3
4
5
6
7
8
9
10
11
12
13 |
/** * 실험용 matrix 만들기 * @return */ private Matrix getMatrix() { Matrix m = new Matrix(); m.postRotate( 10 ); return m; } |
실행결과
시계방향으로 60도 회전하는 경우
1
2
3
4
5
6
7
8
9
10
11
12
13 |
/** * 실험용 matrix 만들기 * @return */ private Matrix getMatrix() { Matrix m = new Matrix(); m.postRotate( 60 ); return m; } |
실행결과
반시계 방향으로 15도 회전하는 경우
1
2
3
4
5
6
7
8
9
10
11
12
13 |
/** * 실험용 matrix 만들기 * @return */ private Matrix getMatrix() { Matrix m = new Matrix(); m.postRotate(- 15 ); return m; } |
실행결과
반시계 방향으로 15도 회전시키고, 아래로 이동시키기
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
/** * 실험용 matrix 만들기 * @return */ private Matrix getMatrix() { Matrix m = new Matrix(); m.preRotate(- 15 ); m.postTranslate( 0 , 50 ); return m; } |
실행결과
오른쪽으로 기울이기
1
2
3
4
5
6
7
8
9
10
11
12
13 |
/** * 실험용 matrix 만들기 * @return */ private Matrix getMatrix() { Matrix m = new Matrix(); m.postSkew(- 0 .8f, 0 .0f); return m; } |
실행결과
뒤쪽을 올리고, 아래로 이동시키기
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
/** * 실험용 matrix 만들기 * @return */ private Matrix getMatrix() { Matrix m = new Matrix(); m.postSkew( 0 .0f, - 0 .4f); m.postTranslate( 0 , 100 ); return m; } |
실행결과
안드로이드에서 비트맵 이미지를 요래조래 조작하는 방법은
(1) ImageView에 matrix를 적용해 두고, 멀정한 비트맵 이미지를 갖다 붙이는 방법과
(2) ImageView는 가만히 냅두고, 비트맵이미지를 조작해서 갖다 붙이는 방법이 있는데
ImageView에 matrix를 적용해두고 비트맵을 갖다 붙이는 방법이 더 쉬운것 같다. (개인의 취향)
다만 이미지를 조작한 다음에 해당 이미지와 좌상단 꼭지점이 어디에 있는지 알면 그림을 적당한 곳에 옮기기가 더 쉬울것 같은데.....
'IT > Android' 카테고리의 다른 글
텍스트 폰트 바꾸기(Typeface를 이용한) (0) | 2012.02.14 |
---|---|
딜레이 주기 (0) | 2012.02.13 |
LayoutInflater 사용법 (0) | 2012.02.08 |
sqlite3 select 조건문 (0) | 2012.02.08 |
sqlite3 디비 (0) | 2012.02.08 |