728x90

Bitmap 이란?

 

안드로이드에서 이미지를 표현하기 위해 사용되는 녀석이 Bitmap이다.

Bitmap와 같이 봐야될 녀석은 BtimapFactory클래스 인데 이름에서 알수 있듯이 "Factory" 공장이다. 바로 Bitmap를 만들어 주는 녀석이다. 안드로이드에서 사용자가 원하는 이미지를 코드상에 넣을려면 해당 이미지는 /res/drawable-xxxx/ 곳에 넣으면 된다. 권장하는 확장자는 png이지만 jpg도 가능하다 

파일을 넣으실때 주의 하셔야 될것은 파일이름은 영어소문자, _(언더바) 만 사용가능하다.

 

Bitmap 에서 사용되는 메소드

 

Bitmap을 다루기 위해 주로 사용되는 녀석은 Bitmap안에 있는 메소드가 아니라 BitmapFactory안에 있는 메소드를 주로 사용한다.  왜냐하면..


이미지 생성(공장에서 만들기 : BitmapFactory ) ---> 화면에 그리기 (Canvas에 그리기 : Canvas )


위의 단계만 거치면 되니 공장에서 사용되는 메소드가 필요하다는것.!

BitmapFacroty 메소드 - 모두 public static Bitmap 로 시작하니 생략함

decodeByteArray(byte[] data, int offset, int length, BitmapFactory.Options opts)

decodeByteArray(byte[] data, int offset, int length)

byte 배열 형태로 되어있는 이미지를 Bitmap으로 만들때 사용한다. 


decodeFile(String pathName)

decodeFile(String pathName, BitmapFactory.Options opts)

휴대폰 안에 파일 형태로 저장된 이미지를 Bitmap으로 만들때 사용한다.


        Bitmap _bit = BitmapFactory.decodeFile("/sdcard/aaa.jpg");

decodeFileDescriptor(FileDescriptor fd)

decodeFileDescriptor(FileDescriptor fd, Rect outPadding, BitmapFactory.Options opts)

FileDescripter로부터 Bitmap를 만들때 사용된다. (FileDescripter는 java.io 패키지를 살펴보면 된다.)


decodeResource(Resources res, int id, BitmapFactory.Options opts)

decodeResource(Resources res, int id)

decodeResourceStream(Resources res, TypedValue value, InputStream is, 

                                                                    Rect pad, BitmapFactory.Options opts)

res 폴더에 저장된 녀석들을 Bitmap으로 만들때 사용한다.


Bitmap _bit = BitmapFactory.decodeResource(getResources(), R.drawable.bbb);


decodeStream(InputStream is)

decodeStream(InputStream is, Rect outPadding, BitmapFactory.Options opts)

InputStream으로 부터 Bitmap을 만들때 사용한다. 

 

그리고 BitmapFactory.Options 이라는 클래스가 있는데. 이녀석은 BitmapFactory의 내부클래스로써 이름처럼 옵션 설정을 한다.  약간 특이한것은 이녀석은 Bitmap에 대한 옵션이다 보니 메소드보다는 변수를 주로 사용한다.

 

BitmapFactory.Options에서 사용되는 변수

public Bitmap         inBitmap

  •     - 설정하면 비트맵 로딩시 설정한 비트맵을 재사용한다.


    public int                   inDensity

        - 픽셀의 밀도 단위를 비트맵에 사용한다.


    public boolean         inDither

        - true로 설정된다면 해당이미지에 dither를 적용한다.


    public boolean         inInputShareable

    public boolean         inJustDecodeBounds

    public boolean         inMutable

        -    true로 설정하면 불변하는 이미지를 리턴한다.


    public boolean         inPreferQualityOverSpeed

        - true로 설정하면 속도보다는 고품질을 수선으로 하여 디코딩 한다.


    public Bitmap.Config       inPreferredConfig

        - null이 아니면 내부 설정으로 디코딩한다.


    public boolean         inPurgeable

    public int                   inSampleSize

        - 메모리를 절약하기 위해서 사용되며 1이상의 숫자값이 설정되면 그숫자만큼 축소시킨다.


    public boolean         inScaled

    public int                   inScreenDensity

    public int                   inTargetDensity

    public byte[]                   inTempStorage


    public boolean         mCancel

        -    해당 Object가 취소 되었을때는 나타내는 플래그값


    public int                   outHeight

        -    이미지의 높이를 설정한다. 만약 디코딩중 에러가 발생하면 -1로 설정된다.


    public String                   outMimeType

        -    디코딩된 이미지의 MIME타입을 설정한다. 


    public int                   outWidth

        -    이미지의 폭을 설정한다. 만약 디코딩중 에러가 발생하면 -1로 설정된다.

  •  

    728x90

    'Android' 카테고리의 다른 글

    안드로이드 입력 (이벤트)  (0) 2012.07.31
    안드로이드 Path  (0) 2012.07.31
    안드로이드 페인트 (Paint)  (0) 2012.07.27
    안드로이드 캔버스 (Canvas)  (0) 2012.07.27
    안드로이드 AbsoluteLayout, FrameLayout, TableLayout  (0) 2012.07.27
    Posted by 정망스
    ,


    맨 위로
    홈으로 ▲위로 ▼아래로 ♥댓글쓰기 새로고침