2016-06-01 2 views
0

검색을 통해 문제에 대한 해결책을 찾을 수 없었습니다.Phreenscreen보다 긴 화면보기

현재 Public-Transport 용 앱을 프로그래밍 중입니다. 교통 검색 결과는 화면에 나타나며 공유 가능해야합니다. 코드를 통해이보기의 스크린 샷을 찍을 때 (결과 만 안드로이드 막대가없는 경우) 그 순간 화면의 내용 만 걸립니다. 결과가 화면상의 위치를 ​​초과하는 경우 결과가 잘립니다.

전체보기를 저장할 수 있습니까? 참고 : 스크린 샷은 저장되지 않고 Gmail이나 기타로 전달되는 내 활동에만 제공됩니다. 도움이된다면

, 여기에 내가 스크린 샷에 사용되는 코드입니다 :

공용 클래스 스크린 샷 {

public static Bitmap takeScreenshot(View view) { 
    view.setDrawingCacheEnabled(true); 
    Bitmap bitmap = view.getDrawingCache(); 
    return bitmap; 
} 

public static Uri saveBitmap(Bitmap bitmap) { 
    File imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.jpg"); 
    FileOutputStream fos; 
    try { 
     fos = new FileOutputStream(imagePath); 
     bitmap.compress(CompressFormat.JPEG, 100, fos); 
     fos.flush(); 
     fos.close(); 
     return Uri.fromFile(imagePath); 
    } catch (FileNotFoundException e) { 
     Log.e("GREC", e.getMessage(), e); 
    } catch (IOException e) { 
     Log.e("GREC", e.getMessage(), e); 
    } 
    return null; 
} 

바라건대, 누군가가 나를 도울 수 있습니다.

답변

0

이 코드는 당신에게

public static Bitmap loadBitmapFromView(View v) { 
    Bitmap b; 
    if (v.getMeasuredHeight() <= 0) { 
     v.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
     b = Bitmap.createBitmap(v.getMeasuredWidth(), v.getMeasuredHeight(), Bitmap.Config.RGB_565); 
     Canvas c = new Canvas(b); 

     v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight()); 
     v.setBackgroundColor(Color.WHITE); 
     v.draw(c); 
     return b; 
    } else { 
     b = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.RGB_565); 
     Canvas c = new Canvas(b); 
     v.layout(v.getLeft(), v.getTop(), v.getRight(), v.getBottom()); 
     v.setBackgroundColor(Color.WHITE); 
     v.draw(c); 
    } 

    return b; 
} 
을 도울 수
관련 문제