Android 實現截圖和分享
阿新 • • 發佈:2018-12-27
直接上程式碼:
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"activity的方法:android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="分享" android:textColor="#ff999999" />
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 = newIntent(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) { } } }親自試過,給大家上圖