Android实现截图和分享功能的代码
作者:kong濤 发布时间:2023-04-09 22:56:43
标签: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) {
}
}
}
总结
以上所述是小编给大家介绍的Android实现截图和分享功能的代码网站的支持!
来源:http://blog.csdn.net/kongty/article/details/75420874


猜你喜欢
- 本文实例讲述了C#将Json解析成DateTable的方法。分享给大家供大家参考。具体实现方法如下:#region 将 Json 解析成 D
- Android提供了对常用音频和视频格式的支持,它所支持的音频格式有MP3(.mp3)、3GPP(.3gp)、Ogg(.ogg)和WAVE(
- 闹钟的简单实现,只有显示时间和设置闹钟。AlarmViewpackage com.example.lenovo.clock2; import
- clone()和Cloneable接口clone顾名思义就是克隆,即,复制一个相等的对象,但是不同的引用地址。我们知道拿到一个对象的地址,只
- 在 APK 开发中,通过 Java 代码来打开系统的安装程序以安装 APK 并不是什么难事,一般的 Android 系统都有开放这一功能。但
- 本文实例为大家分享了C#实现控制台飞行棋小游戏的具体代码,供大家参考,具体内容如下using System;using System.Col
- jar文件包括java普通类、资源文件和普通文件,在maven中即是打包src/main/java和src/main/resources资源
- C#实现委托namespace Delegate{ delegate void DGSayiHi(string n
- 牛逼!IDEA不愧为神器,结合Groovy脚本,简直天下无敌,如今, 有许许多多的插件或者编辑器都支持根据数据表自动生成数据实体类了, 比如
- 本文实例讲述了Android编程解析XML方法。分享给大家供大家参考,具体如下:XML在各种开发中都广泛应用,Android也不例外。作为承
- 今天我们来讨论如何在项目开发中优雅地使用RocketMQ。本文分为三部分,第一部分实现SpringBoot与RocketMQ的整合,第二部分
- eclipse中改变默然的workspace的方法可以有以下几种:1.在创建project的时候,手动选择使用新的workspace,如创建
- 编程语言的流行程度、发展前景、就业市场这些一直都是程序员们非常关注的话题,需求排名是程序员们关注学习的风向标,毕竟是市场经济,学以致用,如果
- 相信大家都见到了微信图标颜色渐变的过程,是不是感觉很牛逼?不得不说微信团队确实是很厉害的团队,不管是从设计还是开发人员。今天我带大家来看看,
- 冒泡排序:就是按索引逐次比较相邻的两个元素,如果大于/小于(取决于需要升序排还是降序排),则置换,否则不做改变这样一轮下来,比较了n-1次,
- ActivityManager.RunningAppProcessInfo类与获取正在运行的应用程序每一个应用程序都会运行在它独立的进程里,
- 平时,我们将c#中的Distinct大多用于对数组去重,一般数组为基础的数据类型,例如 int,string.也可以用于对象去重,我们看看C
- 线上出现了如上的 crash,第一解决反应是在 show dialog 之前做个 isFinish 和 isDestroyed 判断,当我翻
- 接口:红色;实现类:黑色字体一、 Collection集合 Collection |_____Set(HashSet)&
- 一 前言在elasticsearch\config目录下,有三个核心的配置文件:elasticsearch.yml,es相关的配置。jvm.