Android实现截图和分享功能的代码

时间:2021-05-20

先给大家展示下效果图吧

直接上代码:

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) { } }}

总结

以上所述是小编给大家介绍的Android实现截图和分享功能的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章