先给大家展示下效果图吧
直接上代码:
xml的布局:
代码语言:javascript复制<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的方法:
代码语言:javascript复制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();
}
}
});
截取工具:
代码语言:javascript复制//截取屏幕的方法
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实现截图和分享功能的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLou.Cn网站的支持!