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

부분 레이아웃 캡쳐하기 [closed]

0 추천
	                 int width = bar.getWidth() ;//상단 바 레이아웃 크기
			  int height = bar.getHeight() ;//상단 바 레이아웃 크기

			  int width_container = container.getWidth() ;//캡쳐할 레이아웃 크기
			  int height_container = container.getHeight() ;//캡쳐할 레이아웃 크기

                          Log.d("[가로]", " : " + width);
			  Log.d("[세로]", " : " + height);
			  
			  Log.d("[가로container]", " : " + width_container);
			  Log.d("[세로container]", " : " + height_container);
			  
			container.setDrawingCacheEnabled(true);

			container.measure(width_container,height_container);
			
			
			container.layout(0,0,480, 1034); 
			
			container.buildDrawingCache(true);

			Bitmap captureView = Bitmap.createBitmap(container.getDrawingCache());

레이아웃을 캡쳐하려고 합니다. 그런데

Bitmap captureView = Bitmap.createBitmap(container.getDrawingCache());

여기서 비트맵에서 널이 납니다.

레이아웃 수치를 100 100으로 줘봤는데 그때는 100 100 사이즈로 캡쳐가 되는데 일정수치이상으로 하면 캡쳐가안되는거 같습니다. 

 

그리고 또 문제가 레이아우 ㅅ구성이 아래와 같이 되어있습니다.

그림과 같이 캡쳐를 하면 왼쪽 최상단에서 캡쳐를 합니다.

물론 두영역은 리니어와 프레임레이아웃 2가지로 나뉘어 있습니다.

제가 캡쳐할 부분은 아래쪽 큰영역인 프레임 레이아웃이구요

그래서 layout(0,0,widht,height) 부분에서 0을 수치로 바꿔줬는데 그러면 널값에러나면서 죽습니다.

 

될꺼 같으면서 안되네요ㅠㅠ .measure 이게 의미가 있는건지도모르겠고 빼고 해봐도 되긴되는데 제가 원하는 사이즈로는 

캡쳐가 안되네요 

 

07-01 01:11:56.268: D/dalvikvm(32352): GC_CONCURRENT freed 0K, 10% free 35566K/39495K, paused 1ms+2ms
07-01 01:11:56.348: D/(32352): 컬러값1
07-01 01:11:56.448: D/OpenGLRenderer(32352): Flushing caches (mode 0)
07-01 01:11:57.768: D/[가로](32352):  : 480
07-01 01:11:57.768: D/[세로](32352):  : 105
07-01 01:11:57.768: D/[가로container](32352):  : 480
07-01 01:11:57.768: D/[세로container](32352):  : 1034
07-01 01:11:57.768: D/AndroidRuntime(32352): Shutting down VM
07-01 01:11:57.768: W/dalvikvm(32352): threadid=1: thread exiting with uncaught exception (group=0x40c131f8)
07-01 01:11:57.768: E/AndroidRuntime(32352): FATAL EXCEPTION: main
07-01 01:11:57.768: E/AndroidRuntime(32352): java.lang.NullPointerException
07-01 01:11:57.768: E/AndroidRuntime(32352): at android.graphics.Bitmap.createBitmap(Bitmap.java:455)
07-01 01:11:57.768: E/AndroidRuntime(32352): at com.example.faceon.ResultActivity.onClick(ResultActivity.java:882)
07-01 01:11:57.768: E/AndroidRuntime(32352): at android.view.View.performClick(View.java:3524)
07-01 01:11:57.768: E/AndroidRuntime(32352): at android.view.View$PerformClick.run(View.java:14226)
07-01 01:11:57.768: E/AndroidRuntime(32352): at android.os.Handler.handleCallback(Handler.java:605)
07-01 01:11:57.768: E/AndroidRuntime(32352): at android.os.Handler.dispatchMessage(Handler.java:92)
07-01 01:11:57.768: E/AndroidRuntime(32352): at android.os.Looper.loop(Looper.java:137)
07-01 01:11:57.768: E/AndroidRuntime(32352): at android.app.ActivityThread.main(ActivityThread.java:4526)
07-01 01:11:57.768: E/AndroidRuntime(32352): at java.lang.reflect.Method.invokeNative(Native Method)
07-01 01:11:57.768: E/AndroidRuntime(32352): at java.lang.reflect.Method.invoke(Method.java:511)
07-01 01:11:57.768: E/AndroidRuntime(32352): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
07-01 01:11:57.768: E/AndroidRuntime(32352): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
07-01 01:11:57.768: E/AndroidRuntime(32352): at dalvik.system.NativeStart.main(Native Method)
07-01 01:11:59.288: I/Process(32352): Sending signal. PID: 32352 SIG: 9
 

 

질문을 종료한 이유: 해결되었습니다.
브루스웨인 (8,580 포인트) 님이 2013년 7월 1일 질문
브루스웨인님이 2013년 7월 17일 closed
...