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

화면에 보이지 않는 view ->bitmap으로 저장하기

0 추천
안녕하세요 안드로이드펍 가족님들.

현재 제가 pdf 파일을 만들려고합니다. 그런데..

pdf에 차트와 이것저것을 넣어야하는데요..

view를 상속받아서 차트를 그리는 라브리러리가 있는데 그것을 이용해서 view를 bitmap으로 변형후

pdf에 넣을려고하는데 찾아보니 화면에 보이는 view화면을 bitmap으로 만드는거 잇는거 같은데.

화면에 오이지 않는 view를 bitmap으로 변형 가능한가요?

좋은하루 되세요
흠바바 1 (4,000 포인트) 님이 2013년 11월 11일 질문

1개의 답변

0 추천
 
채택된 답변
네 가능합니다.

LayoutInflater 로 해당 뷰를 Inflate 시키시커나 해당 뷰를 new로 만들어서

view에 measure 메소드를 호출 후, layout 메소드를 호출하세요.

그 다음에 canvas를 하나 만들어서 v.draw(canvas) 하시거나 해당 뷰의 drawingCache를 이용하면 bitmap을 얻을 수 있습니다.

각 메소드의 사용 방법은 구글링 하시면 많이 나와요.
whitesnow (8,920 포인트) 님이 2013년 11월 11일 답변
흠바바 1님이 2013년 11월 11일 채택됨
GraphView graphView = new GraphView(this, values, "GraphViewDemo",horlabels, verlabels, GraphView.BAR);
        graphView.measure(graphView.getWidth(), graphView.getHeight());
        graphView.layout(30, 50, 60, 70);
        Bitmap bit = graphView.getDrawingCache();
        aa.setImageBitmap(bit);

이런식 아닌가요? 되진않습니다 ㅜㅜ
GraphView graphView = new GraphView(this, values, "GraphViewDemo",horlabels, verlabels, GraphView.BAR);
        graphView.measure(MeasureSpec.makeMeasureSpec(xxx, option), MeasureSpec.makeMeasureSpec(xxx, option));
        graphView.layout(0, 0, graphView.getMeasuredWidth(), graphView.getMeasuredHeight());
graphView.setDrawingCacheEnable(true);
graphView.buildDrawingCache();
        Bitmap bit = graphView.getDrawingCache();
        aa.setImageBitmap(bit);

위에 소스에서 수정을 좀 했습니다. xxx로 써놓은 부분은 원하는 이미지 크기를 넣어 주시면 되겠네요. 아 그리고 option은 MeasureSpec.EXACTLY 쓰시면 됩니다.
감사합니다.^^ 신기하네요
...