2011-11-04 7 views
1

다음 코드를 사용하여 TableLayout의 스크린 샷을 찍습니다. 내 안드로이드 응용 프로그램의 테마가 LIGHT로 설정되어야한다고 덧붙여 야합니다. 그것은 마치 에뮬레이터 화면에서 완벽하게 잘 보여줍니다. (마치 ...) 그러나 일단 스크린 샷이 찍히면 이미지가 이렇게 변합니다. 아무도 내가 여기서 잘못하고있는 것을 지적 할 수 있습니까? ? 감사! 당신은 PNG를 사용한다스크린 샷 오류 (안드로이드)

private void getScreen() 
      { 
       View content = findViewById(R.id.TransactionLog); 
       content.setDrawingCacheEnabled(true); 

       content.buildDrawingCache(true); 

       Bitmap bitmap = Bitmap.createBitmap(content.getDrawingCache()); 


       content.setDrawingCacheEnabled(false); // clear drawing cache 

       File file = new File(Environment.getExternalStorageDirectory() + 
         File.separator + "logDetails.jpeg"); 




         try 
          { 
           file.createNewFile(); 
           FileOutputStream ostream = new FileOutputStream(file); 
           bitmap.compress(CompressFormat.JPEG, 100, ostream); 

           ostream.flush(); 
           ostream.close(); 

          } 
         catch (Exception e) 
          { 
           e.printStackTrace(); 
          } 

         if (!file.exists()) { 
          sendmail(); 
         } 
      } 

The background shows black

답변

2

1). Jpeg는 사진을위한 것입니다 (기본적으로).

2) Jpeg를 사용하고 있기 때문에이 검은 색 영역이 그렇지 않으면 투명하다고 가정합니다. PNG는 투명성을 지원합니다. Jpeg는 그렇지 않습니다. 나는 drawingCache를 시도하지 않았기 때문에 아마도 투명성을 지원하지 않을 수도 있고 완전히 틀렸을 수도 있습니다.하지만 그건 내 추측입니다.

요약하면 Png를 시도해보십시오.

+0

예! 그게 내 문제를 고쳤어 ... 고마워! – BurninatorDor