Bitmap Canvas 스킬

JAVA/Android_Tip 2012.07.11 13:54
크리에이티브 커먼즈 라이선스
Creative Commons License

 

 

 

 

 

 

 

 

 

 

 

 

 

 

외국 성님들이 하는 방식이

 

Bitmap wallpaper = Bitmap.createBitmap(displayWidth*5,displayHeight, Config.ARGB_8888);
 
Canvas canvas = new Canvas(wallpaper);
 
Uri data = getIntent().getData();
 
Bitmap bmp = getBitmap(data, imagePosition, displayWidth, displayHeight);
 canvas
.drawBitmap(bmp, 0, 0,null);
 
WallpaperManager wallpaperManager = (WallpaperManager) SetterActivity.this.getSystemService(Context.WALLPAPER_SERVICE);
 wallpaperManager
.setBitmap(wallpaper);
 wallpaperManager
.suggestDesiredDimensions(bmp.getWidth()*2, bmp.getHeight());

커다란 비트맵 객체로 Wallpaper라는 큰 도화지를 만들어서

Canvas객체로 Bitmap객체를 연결한다. 그리고 이미지를 받아와서

그 도화지에 하나 하나 집어 넣는건데..

저기서 getBitmap이라는 메소드를 외국 성님께서 안적어주신 바람에

지금 골머리를 앓고 있다. 대충 느낌은 이미지의 위치를 정하는 부위인거 같은데..

여튼 이런식으로 하면 Bitmap위에 다른 Bitmap도 섞을 수 있다는거 .

 

[출처] http://javaexpert.tistory.com/376 [작성자] by 흑곰맨 in tistory

 

private Bitmap overlayMark(Bitmap baseBmp, Bitmap overlayBmp, int distanceLeft,

    int distanceTop)

{
    Bitmap resultBmp = Bitmap.createBitmap(baseBmp.getWidth() + distanceLeft,
                                                             baseBmp.getHeight() + distanceTop, 
                                                             baseBmp.getConfig());
    Canvas canvas = new Canvas(resultBmp);
    canvas.drawBitmap(baseBmp, distanceLeft, distanceTop, null);
    canvas.drawBitmap(overlayBmp, 0, 0, null);
    return resultBmp;
}

 

흔히 이런식으로 bitmap끼리의 위치를 조정하여 사용하기도 한다.

즉 저기 getBitmap이라는 곳이 위의 overlayMark랑 비슷한 효과인거 같은데 저부분에 대한 연구는 지금 하는 중..

이다.

저작자 표시 비영리 변경 금지
신고


티스토리 툴바