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实现截图和分享功能的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Android屏幕及view的截图实例详解

    Android屏幕及view的截图实例详解 屏幕可见区域的截图 整个屏幕截图的话可以用View view = getWindow().getDecorView(); public static Bitmap getNormalViewScreenshot(View view) { view.setDrawingCacheEnabled(true); view.buildDrawingCache(); return view.getDrawingCache(); } scrollview的整体截屏

  • Android仿银行客户签名并且保存签名的截图文件并命名为本地时间

    首先需要一个自定义view用来签字使用,可以修改颜色和画笔的粗细,可以擦拭重新画 package com.android.tcm.view; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.Canvas; import android.graphics.Color; import androi

  • Android中如何获取视频文件的截图、缩略图

    背景 公司最近要求给我负责的APP加上视频录制和发布的功能,我简单的完成了基本的录制和视频压缩功能,后来发现发布接口需要上传视频的截图,网上搜索了一下资料,在这里整理一下. 代码实现 /** * 获取视频文件截图 * * @param path 视频文件的路径 * @return Bitmap 返回获取的Bitmap */ public static Bitmap getVideoThumb(String path) { MediaMetadataRetriever media = new Me

  • android截图事件监听的原理与实现

    Android系统没有对用户截屏行为提供回调的api,所以我们只能走野路子来获取用户是否截屏了.一般大家都会采用如下两种方法 1.监听截屏图片所在目录变化(FileObserver) 2.监听媒体库的变化(ContentObserver) 上面两种方法均不是万能的,需要结合使用才能达到良好的效果,首先看看如何监控目录 在android中,我们可以通过FileObserver来监听目录变化,先来看看如何使用 private static final File DIRECTORY_PICTURES

  • Android中通过view方式获取当前Activity的屏幕截图实现方法

    此方法是通过view的方式获取当前activity的屏幕截图,并不是framebuffer的方式,所以有一定的局限性.但是这种方法相对简单,容易理解. 首先通过下面的函数获取Bitmap格式的屏幕截图: 复制代码 代码如下: public Bitmap myShot(Activity activity) { // 获取windows中最顶层的view View view = activity.getWindow().getDecorView(); view.buildDrawingCache()

  • Android 截图功能源码的分析

    Android 截图功能源码的分析 一般没有修改rom的android原生系统截图功能的组合键是音量减+开机键:今天我们从源码角度来分析截图功能是如何在源码中实现的. 在android系统中,由于我们的每一个Android界面都是一个Activity,而界面的显示都是通过Window对象实现的,每个Window对象实际上都是PhoneWindow的实例,而每个PhoneWindow对象都对应一个PhoneWindowManager对象,当我们在Activity界面执行按键操作的时候,在将按键的处

  • Android截屏截图的几种方法总结

    Android截屏 Android截屏的原理:获取具体需要截屏的区域的Bitmap,然后绘制在画布上,保存为图片后进行分享或者其它用途 一.Activity截屏 1.截Activity界面(包含空白的状态栏) /** * 根据指定的Activity截图(带空白的状态栏) * * @param context 要截图的Activity * @return Bitmap */ public static Bitmap shotActivity(Activity context) { View vie

  • 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:tex

  • Android 百度地图POI搜索功能实例代码

    在没介绍正文之前先给大家说下poi是什么意思. 由于工作的关系,经常在文件中会看到POI这三个字母的缩写,但是一直对POI的概念和含义没有很详细的去研究其背后代表的意思.今天下班之前,又看到了POI这三个字母,决定认认真真的搜索一些POI具体的含义. POI是英文的缩写,原来的单词是point of interest, 直译成中文就是兴趣点的意思.兴趣点这个词最早来自于导航地图厂商.地图厂商为了提供尽可能多的位置信息,花费了很大的精力去寻找诸如加油站,餐馆,酒店,景点等目的地,这些目的地其实都可

  • Android ShareSDK快速实现分享功能

    第一步 :获取ShareSDK 为了集成ShareSDK,您首先需要到ShareSDK官方网站注册并且创建应用,获得ShareSDK的Appkey,然后到SDK的下载页面下载SDK的压缩包,解压以后可以得到如下图的目录结构: ShareSDK在"ShareSDK for Android"目录下,此目录中的"Libs"包含"MainLibs"和"OnekeyShare" 分别是ShareSDK的核心库和"快捷分享&qu

  • Java实现微信公众平台朋友圈分享功能详细代码

    其实分享的方法在微信官网有较为详细的文档说明,现就其中一些比较绕的步骤进行总结,有问题随时交流哈. 首先微信其实已经自带分享到朋友圈,朋友,qq空间等功能,对于开发微信专门提供了一个接口,可以根据需要修改一些配置.例如修改要分享内容的头像,链接,描述等. 开发步骤: 1.在公众平台配置js-sdk接口 "公众号设置"--"功能设置"--"JS接口安全域名" 2.在要分享的页面引入js http://res.wx.qq.com/open/js/jw

  • Android模拟强制下线通知功能实例代码

    package com.itheima74.broadcastbestpractice; import android.content.Intent; import android.os.Bundle; import android.os.SystemClock; import android.support.v4.content.LocalBroadcastManager; import android.view.View; /** * 模拟强制下线通知 * 1.登录成功后10秒发送一条本地自

  • Android实现短信验证功能的代码

    在我们现在开发APP过程中,当用户注册时,短信验证是必不可少的操作,这里我们就是用一个免费的第三方短信验证SDK-MOP 首先看下效果图 获取AppKey和AppSecret 首先进入官网,登录(没有帐号的自己去注册一个).鼠标移动到右侧头像处,点击进入后台. 官网首页 选择SecurityCodeSDK. 选择短信SDK 进入后台页面后,点击添加按钮.填写应用名称(这个可以随便写).选择Android后,点击添加即可. 添加应用 添加成功后,就会进入以下界面,在这里就可以看到刚刚申请成功的Ap

  • Android条目拖拽删除功能实例代码

    项目中需求,要做条目条目拖拽删除效果,实际效果和QQ消息删除一样,侧滑有制定和删除. 效果图 第一步效果图 1.0自定义控件 SwipeLayout 继承FrameLayout重写里面三个构造方法,分别调用initView(). 2.0在布局中使用自定义控件 3.0在initView()方法中,创建拖拽辅辅助工具 ViewDragHelper() 该方法需要传入回调 MyCallBack() 4.0,创建MyCallBack()回调,继承ViewDragHelper.Callback 在回调中

  • Android调用系统自带的分享功能实例代码

    实现分享功能的几个办法 1.调用系统的分享功能 2.通过第三方SDK,如ShareSDK,友盟等 3.自行使用各自平台的SDK,比如QQ,微信,微博各自的SDK 这里就记录下第一种办法. 分享文本信息 Intent textIntent = new Intent(Intent.ACTION_SEND); textIntent.setType("text/plain"); textIntent.putExtra(Intent.EXTRA_TEXT, "这是一段分享的文字&quo

  • Android实现新浪微博一键分享的实例代码

    写在本章前 愈来愈多的APP支持一键分享至QQ空间.微信朋友圈.新浪微博的功能,同时支持第三方账号登录,如QQ.微信.新浪微博等第三方平台的账号.本章结合当下流行的设计,兼顾免费的开源ShareSDK,结合项目中的实际需求,整合出一套分享源码,版权所有,如需转载请注明转载地址. 1. 开发环境及SDK下载 开发工具:Android studio2.1.3版本 ShareSDK:Mob官网(www.mob.com)下载最新社会化分享ShareSDK2.7.7版本,解压如图示 进入ShareSDK

  • Android APP集成新浪微博分享功能

    本文为大家分享了新浪微博分享功能集成,供大家参考,具体内容如下 下载新浪微博Android SDK 直接导入weibosdkcore.jar:适用于只需要授权.分享.网络请求框架功能的项目. 无论使用哪一种方式,都需要先将demo中lib目录下的对应的全部 libweibosdkcore.so文件目录拷贝到你的目标工程中Demo.在app–>src–>main中新建文件夹jniLibs,将demo 中lib目录下的对应的全部 libweibosdkcore.so文件目录拷贝到其中,不要改变任何

随机推荐