分享一个简单的截屏代码。
1.主Activity
- package com.zhf.ScreenshotDemo;
- import android.app.Activity;
- import android.graphics.Bitmap;
- import android.graphics.drawable.BitmapDrawable;
- import android.os.Bundle;
- import android.view.Display;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.ImageView;
- public class ScreenshotDemoActivity extends Activity {
- private Button shotButton;
- private ImageView imageView;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- shotButton=(Button)findViewById(R.id.shotButton);
- imageView=(ImageView)findViewById(R.id.imageView);
- shotButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- //Bitmap-->Drawable
- BitmapDrawable bd=new BitmapDrawable(shot());
- imageView.setBackgroundDrawable(bd);
- // imageView.setImageBitmap(shot());
- }
- });
- }
- /**
- * 截屏方法
- * @return
- */
- private Bitmap shot() {
- View view = getWindow().getDecorView();
- Display display = this.getWindowManager().getDefaultDisplay();
- view.layout(0, 0, display.getWidth(), display.getHeight());
- view.setDrawingCacheEnabled(true);//允许当前窗口保存缓存信息,这样getDrawingCache()方法才会返回一个Bitmap
- Bitmap bmp = Bitmap.createBitmap(view.getDrawingCache());
- return bmp;
- }
- }
2.布局
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <ImageView android:id="@+id/imageView"
- android:layout_width="fill_parent"
- android:layout_height="350dip"
- />
- <Button android:id="@+id/shotButton"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="shot"/>
- </LinearLayout>