티스토리 뷰

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public class MainActivity extends ActionBarActivity  {
 
    int mType = 0;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        final TextView tv = (TextView)findViewById(R.id.tv);
        final ImageView iv = (ImageView)findViewById(R.id.iv);
        iv.setOnClickListener(new View.OnClickListener() {
            @Override
        public void onClick(View v) {
 
                String[] typeArray = {"MATRIX","FIT_XY","FIT_START","FIT_CENTER"
,"FIT_END","CENTER","CENTER_CROP","CENTER_INSIDE"};
 
                mType = (mType+1) % 8;
 
                ImageView.ScaleType type = iv.getScaleType();
                tv.setText(typeArray[mType]);
 
                iv.setScaleType(ImageView.ScaleType.valueOf((typeArray[mType])));
/*
 switch (type)
 {
case MATRIX:    iv.setScaleType(ImageView.ScaleType.FIT_XY);                  break;
case FIT_XY:    iv.setScaleType(ImageView.ScaleType.FIT_START);              break;
case FIT_START: iv.setScaleType(ImageView.ScaleType.FIT_CENTER);            break;
case FIT_CENTER:iv.setScaleType(ImageView.ScaleType.FIT_END);                break;
case FIT_END:   iv.setScaleType(ImageView.ScaleType.CENTER);                  break;
case CENTER:    iv.setScaleType(ImageView.ScaleType.CENTER_CROP);            break;
case     CENTER_CROP:iv.setScaleType(ImageView.ScaleType.CENTER_INSIDE);        break;
case CENTER_INSIDE:iv.setScaleType(ImageView.ScaleType.MATRIX);              break;
case MATRIX:        type = ImageView.ScaleType.FIT_XY;                  break;
case FIT_XY:        type = ImageView.ScaleType.FIT_START;              break;
case FIT_START:     type = ImageView.ScaleType.FIT_CENTER;            break;
case FIT_CENTER:    type = ImageView.ScaleType.FIT_END;                break;
case FIT_END:       type = ImageView.ScaleType.CENTER;                  break;
case CENTER:         type = ImageView.ScaleType.CENTER_CROP;            break;
case CENTER_CROP:   type = ImageView.ScaleType.CENTER_INSIDE;        break;
case CENTER_INSIDE:type = ImageView.ScaleType.MATRIX;              break;
                }
                iv.setScaleType(type);
                tv.setText(typeArray[iv.getScaleType().ordinal()]);
*/
                //TextView tv = (TextView) findViewById(R.id.tv);
                //tv.setText(typeArray[]);
            }
        });
 
    }
}
cs


Scale Type에는 8가지 종류가 있습니다.  


1. matrix(원본 그대로)

2. center(가운데 정렬)

3. centerCrop(비율을 유지하며 가운데를 중심으로 자른다.)

4. centerInside(비율을 유지하며 줄어듬)

5. fitStart(왼쪽 위 정렬/ 비율유지)

6. fitCenter(centerInside와 동일)

7. fitEnd(왼쪽 아래 정렬 / 비율유지)

8. fitXY(늘이기 ImageView를 비율에 상관없이 다 채웁니다.)

위 예제를 참고하여 학습해보도록 합시다.


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함