2014-12-25 17 views
7

Tôi làm cách nào để chụp ảnh toàn cảnh hoạt động trên Android, ngay cả khi nội dung không hiển thị? Ví dụ: chụp màn hình của cuộc trò chuyện đầy đủ và sau đó tạo tập tin hình ảnh?Cách chụp màn hình trang hoạt động WHOLE theo lập trình?

enter image description here

Tôi cũng muốn có khu vực ẩn màn hình.

Cảm ơn

+0

cậu thử làm gì? –

+0

Tôi đã thử thư viện Android ASL, nhưng bản demo không hoạt động đúng cách. https://code.google.com/p/android-screenshot-library/ –

+0

Tôi thậm chí không chắc chắn nó có thể hay không về mặt kỹ thuật –

Trả lời

7

Một cách là trích xuất bitmap của màn hình hiện tại và lưu nó. Hãy thử điều này:

public void takeScreenshot(){ 
    Bitmap bitmap = getScreenBitmap(); // Get the bitmap 
    saveTheBitmap(bitmap);    // Save it to the external storage device. 
} 

public Bitmap getScreenBitmap() { 
    View v= findViewById(android.R.id.content).getRootView(); 
    v.setDrawingCacheEnabled(true); 
    v.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
      MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
    v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight()); 

    v.buildDrawingCache(true); 
    Bitmap b = Bitmap.createBitmap(v.getDrawingCache()); 
    v.setDrawingCacheEnabled(false); // clear drawing cache 
    return b; 
} 

Android take screen shot programmatically

+0

cảm ơn, có nó hoạt động, nhưng tôi cần ảnh chụp màn hình của hoạt động đầy đủ - không chỉ hiển thị. :) –

+0

Hoạt động đầy đủ như trong? Bạn có thể chia sẻ ảnh chụp màn hình của điện thoại và nội dung ảnh chụp màn hình được yêu cầu không? Hoạt động đầy đủ như trong hiện tại và các hoạt động khác đã được tạo trong nền? – thepace

+1

Tôi đã chỉnh sửa câu hỏi của mình, vui lòng xem hình ảnh ở trên và bạn sẽ hiểu những gì tôi cần :) thx –

1

Đây là một cách để chụp "ảnh chụp màn hình" của chế độ xem. Tôi đã không thử nghiệm nó để cho biết nếu nó hoạt động

//View v is the root view/parent of your layout, for example LinearLayout or RelativeLayout (layout where you have placed content of which you want to take screenshot) 
private Bitmap getBitmapFromView(View v) { 
    Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas (bitmap); 
    v.draw(canvas); 
    // Returns screenshot 
    return bitmap; 
} 
+0

Cảm ơn câu trả lời của bạn, có nó 's hoạt động nhưng tôi cần ảnh chụp màn hình của hoạt động đầy đủ - không chỉ có thể nhìn thấy .. bạn đã cho tôi? :) –

+0

@Giorgi Asaturyan Đặt scrollview làm chế độ xem gốc. Bằng cách đó bạn có thể chụp ảnh màn hình ngay cả khi nội dung không hiển thị. Hoặc nếu nội dung của bạn nằm bên trong một ListView, bạn có thể tự động cuộn xuống hoặc lên và chụp nhiều ảnh chụp màn hình của nó rồi kết hợp chúng lại với nhau thành một bitmap. Nó không quá khó. – user1888162

+0

Tôi sẽ cố gắng ngay bây giờ, cảm ơn bạn –

0

public class MainActivity mở rộng Hoạt động {

ImageView imageView = null; 
ScrollView sv = null; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    sv = (ScrollView) findViewById(R.id.ssscrollView); 
    imageView = (ImageView) findViewById(R.id.imgView); 
    Button myBtn = (Button) findViewById(R.id.btn); 
    myBtn.setOnClickListener(new View.OnClickListener() { 

     @SuppressWarnings("deprecation") 
     @Override 
     public void onClick(View v) { 

      View v1 = sv.getRootView(); 
      v1.setDrawingCacheEnabled(true); 
      Bitmap bm = getBitmapFromView(v1); 
      @SuppressWarnings("deprecation") 
      BitmapDrawable bitmapDrawable = new BitmapDrawable(bm); 
      ImageView view2 = (ImageView) findViewById(R.id.imgView); 
      view2.setBackgroundDrawable(bitmapDrawable); 
     } 
    }); 

} 

private Bitmap getBitmapFromView(View v) { 
    Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(bitmap); 
    v.draw(canvas); 
    return bitmap; 
} 

}

Các vấn đề liên quan