마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

canvas를 bitmap으로 만들어주는 방법

0 추천
canvas에 drawBitmap 도 하고, drawCircle도 하고, drawText도 했습니다.

 

이 canvas를 바이너리로만들려면

 

우선 Bitmap으로 만들어야하는것같은데

 

어떻게 Bitmap으로 만드나요 ??

 

구글링 해보니

Bitmap b = Bitmap.createBitmap(pdr.canvas.getWidth(), pdr.canvas.getHeight(), Bitmap.Config.ARGB_8888);

 

이렇게 해주던데 width and height must be >0 익셉션이 발생합니다.

 

pdr객체선언이 잘못되서그런건지 다른이유가있는지 모르겠네요
음무 (17,820 포인트) 님이 2014년 1월 17일 질문

1개의 답변

+1 추천
 
채택된 답변
View가 그려지기전에 사이즈가 정상적으로 표시가 안될거에요

그래서 아마 0x0으로 나와서 비트맵 만들려면 0이상줘라 하고 에러나는것이고

그럼 원하는 사이즈를 넣으시거나 ViewTreeObserver등을 이용해서 하시면 될듯
q1212 (26,020 포인트) 님이 2014년 1월 17일 답변
음무님이 2014년 1월 17일 채택됨
뷰가 그려진 뒤 버튼을 눌러 비트맵으로 생성하는 과정을 하고있는데 거기서 에러가발생합니다.
조금만더자세히도움주실수있을까요
pdr이 뭔지, 왜 canvas.getWidth()가 0이 나오는지 원인을 파악해보세요. 주어진 정보만으로는 다른 설명 드리기 어렵네요.
확실히 0,0 이 나옵니다. 그림이그려져도그렇군요 ViewTreeObserver가 canvas에도 적용이 되나요 ?
pdr클래스에 canvas가 있어서요 .. 직접 pdr클레스에서 로깅해봐도 0,0이 나오네요
아래 질문글 보고왔는데요
그냥 제일큰 1000x1000으로 잡으시면 될거같습니다.
canvas.getWidth()가 아니라 bigBitmap.getWidth(); 요런식으로 하면 될거같습니다.
...