1. 程式人生 > >Android 實現截圖和分享

Android 實現截圖和分享

直接上程式碼:

xml的佈局:

<Button
android:id="@+id/btn_jp"
android:layout_marginTop="10dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="截圖"
android:textColor="#ff999999" />

<Button
android:id="@+id/btn_share"
android:layout_marginTop="10dip"
android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="分享" android:textColor="#ff999999" />
activity的方法:
private String imagePath;

//截圖
btnJp.setOnClickListener(new View.OnClickListener() {
            @Override
public void onClick(View v) {
//                image = ScreenShot.shoot(AddressSelecterActivity.this);
screenshot(); // Bitmap bitmap = getBitmapByView(scrollView); // savePic(bitmap); } }); //分享 btnShare.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (imagePath != null){ Intent intent = new
Intent(Intent.ACTION_SEND); // 啟動分享傳送的屬性 File file = new File(imagePath); intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));// 分享的內容 intent.setType("image/*");// 分享傳送的資料型別 Intent chooser = Intent.createChooser(intent, "Share screen shot"); if(intent.resolveActivity(getPackageManager()) != null){ startActivity(chooser); } } else { Toast.makeText(AddressSelecterActivity.this, "先截圖,再分享", Toast.LENGTH_SHORT).show(); } } });
擷取工具:
//擷取螢幕的方法
private void screenshot() {
    // 獲取螢幕
View dView = getWindow().getDecorView();
    dView.setDrawingCacheEnabled(true);
    dView.buildDrawingCache();
    Bitmap bmp = dView.getDrawingCache();
    if (bmp != null)
    {
        try {
            // 獲取內建SD卡路徑
String sdCardPath = Environment.getExternalStorageDirectory().getPath();
            // 圖片檔案路徑
imagePath = sdCardPath + File.separator + "screenshot.png";

            File file = new File(imagePath);
            FileOutputStream os = new FileOutputStream(file);
            bmp.compress(Bitmap.CompressFormat.PNG, 100, os);
            os.flush();
            os.close();
        } catch (Exception e) {
        }
    }
}
親自試過,給大家上圖