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

레이아웃 캡쳐 부분 애러인데 캡쳐한 화면은 잘 출력되나 비트맵 정보를 불러올수가 없습니다.

0 추천
 
 
레이아웃을 캡쳐하여서 이미지뷰에 넣고 실시간 출력까지는 성공했습니다. 
 
근데 원래 이미지의 2배 크기로 키워서 출력하려고 하니까 널포인트 익셉션 애러가 나더군요 .
 
Poto_bit=Screen_layout.getDrawingCache();     이부분이 비트맵에다 캡쳐한 비트맵을 넣는 구간인데
 
넣는것은 문제가 되지 않으나 Poto_bit = Bitmap.createScaledBitmap 로 크기변환이나  높이 넓이 를 가져오려고 하면 
 
널포인트 익셉션 애러가 나네요 .. 분명   POTO.setImageBitmap(Poto_bit); 이미지뷰에도 잘대입되는데 
 
캡쳐한 부분을 비트맵으로 받아 2배로 키워서 이미지 특정영역을 크롭하려 하는데 잘안되네요 ..
 
왜 널포인트 가 나는지 알수 있을까요 ? ㅜ
 
 Handler mHandler = new Handler(){
     public void handleMessage(Message msg){
 
     i=i+30;
     B.setRotation(i);
     mHandler.sendEmptyMessageDelayed(0, 30);
     Bitmap Poto_bit=BitmapFactory.decodeResource(getResources(), R.drawable.a_mouth2_1_3);
  Screen_layout.setDrawingCacheEnabled(false);
  Screen_layout.setDrawingCacheEnabled(true);
  Screen_layout.buildDrawingCache(true);
  Poto_bit=Screen_layout.getDrawingCache();     
  System.out.println(Poto_bit.getWidth());       //null point exception
  POTO.setImageBitmap(Poto_bit);
  POTO.invalidate();
  POTO.setX(X-POTO.getWidth()/2);
  POTO.setY(Y-POTO.getHeight()/2);
 
 
//   Scale_Bit = Bitmap.createScaledBitmap(Poto_bit, Poto_bit.getWidth()*2, Poto_bit.getHeight()*2, true);
//   Scale_Select = Bitmap.createBitmap(Scale_Bit, 0, 0, 100, 100);
     
     };
    };
CJ여비 (5,730 포인트) 님이 2015년 1월 12일 질문

2개의 답변

+1 추천
 
채택된 답변

자답입니다. 

 

이유는 모르겠지만 비트맵에 null 들어왔다 비트맵이 들어왔다 하는거같아 

 

if(Poto_bit !=null)

{

/*이미지 리사이즈*/

}

 

null 이 아닐 때만 불러와주니 정보를 잘받아오네요 ..

CJ여비 (5,730 포인트) 님이 2015년 1월 12일 답변
+1 추천
mHandler.sendEmptyMessageDelayed(0, 30);

이것을 제일 아래 라인으로 옮겨보셔요..
nicehee (73,100 포인트) 님이 2015년 1월 12일 답변
답변 감사드립니다 아래 라인으로 옴겨도 똑같은 애러가 나네요..ㅜ 혹시나 해서 딜레이 시간을 더 길게 줘봤는데도 마찬가지로 널포인트 애러가 나타납니다 ㅠ
...