- 浏览: 534333 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
效果图挺恶心,哈哈哈!
[img]
[/img]
布局文件就一个Button
主要代码如下:
ScreenshotTools
ScreenshotActivity:
本文转载自:http://johnson008.blog.51cto.com/4000361/743048 ,谢谢作者的指教.
[img]
[/img]
布局文件就一个Button
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_text" /> </LinearLayout>
主要代码如下:
ScreenshotTools
package com.magus.screen; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Rect; import android.net.Uri; import android.os.Environment; import android.os.StatFs; import android.view.View; import android.widget.Toast; public class ScreenshotTools { /*** * @author Johnson * * */ public static long minSizeSDcard = 50; public static String filePath = Environment.getExternalStorageDirectory() + "/FJBICache"; public static String fileName = "chart.png"; public static String detailPath = filePath + File.separator + fileName; public static final int SEND_EMAIL = 1; // public static String detailPath="/sdcard/FjbiCache/chart.png"; /** * 调用系统程序发送邮件 * * @author Johnson * * */ private static void sendEmail(Context context, String[] to, String subject, String body, String path) { Intent email = new Intent(android.content.Intent.ACTION_SEND); if (to != null) { email.putExtra(android.content.Intent.EXTRA_EMAIL, to); } if (subject != null) { email.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); } if (body != null) { email.putExtra(android.content.Intent.EXTRA_TEXT, body); } if (path != null) { /* * 用email.setType("image/png");或者email.setType( * "application/octet-stream"); 都不会影响邮件的发送 * 为什么email.setType("image/png" * );而不用email.setType("application/octet-stream"); ? * 因为在开发中发现setType("image/png"),系统会同时给你调用彩信,邮件,等..... */ File file = new File(path); email.putExtra(android.content.Intent.EXTRA_STREAM, Uri.fromFile(file)); email.setType("image/png"); } context.startActivity(Intent.createChooser(email, "请选择发送软件")); } /** * 获取指定Activity的截屏,保存到png文件 * * @author Johnson * **/ private static Bitmap takeScreenShot(Activity activity) { // View是你需要截图的View View view = activity.getWindow().getDecorView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitmap b1 = view.getDrawingCache(); // 获取状态栏高度 Rect frame = new Rect(); activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); int statusBarHeight = frame.top; System.out.println(statusBarHeight); // 获取屏幕长和高 int width = activity.getWindowManager().getDefaultDisplay().getWidth(); int height = activity.getWindowManager().getDefaultDisplay() .getHeight(); // 去掉标题栏 // Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455); Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight); view.destroyDrawingCache(); return b; } /** * 截图保存 * * @author Johnson * **/ private static void savePic(Bitmap b, String filePath, String fileName) { File f = new File(filePath); if (!f.exists()) { f.mkdir(); } FileOutputStream fos = null; try { fos = new FileOutputStream(filePath + File.separator + fileName); if (null != fos) { b.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.flush(); fos.close(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * * 截屏并发送邮件 * * @author Johnson * **/ public static void takeScreenShotToEmail(Context context, Activity a) { if (getAvailableSDcard(context)) { savePic(takeScreenShot(a), filePath, fileName); // selectDialog(context); sendEmail(context, null, null, null, detailPath); } } /*** * Sd判断SD卡是否可用 * * @author Johnson minSizeSDcard>50kb * */ public static boolean getAvailableSDcard(Context context) { boolean sdCardExist = Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED); // 判断sd卡是否存在 System.out.println("+++" + sdCardExist); if (sdCardExist) { File path = Environment.getExternalStorageDirectory(); StatFs stat = new StatFs(path.getPath()); long blockSize = stat.getBlockSize(); long availableBlocks = stat.getAvailableBlocks(); long sdCardSize = (availableBlocks * blockSize) / 1024;// KB值 if (sdCardSize > minSizeSDcard) { System.out.println("SDcardSize:::" + minSizeSDcard + "KB"); return true; } else { Toast.makeText(context, "SD卡空间不足", Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(context, "请在使用转发功能之前插入SD卡", Toast.LENGTH_SHORT) .show(); } return false; } }
ScreenshotActivity:
package com.magus.screen; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class ScreenshotActivity extends Activity { /** Called when the activity is first created. */ Button bt; Context mContext; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bt=(Button)findViewById(R.id.button1); mContext=this; bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub ScreenshotTools.takeScreenShotToEmail(mContext, ScreenshotActivity.this); } }); } }
本文转载自:http://johnson008.blog.51cto.com/4000361/743048 ,谢谢作者的指教.
发表评论
-
Android中如何模拟一次点击(touch)事件
2014-05-06 10:41 0在Android中有时需要模拟某一个View的touch事件, ... -
Android程序Crash时的异常上报
2014-04-28 18:15 0http://blog.csdn.net/singwhatiw ... -
android程序中证书签名校验的方法
2014-04-28 17:58 2008android程序中证书签名校验的方法一 2013-02 ... -
MD5理解错了,哎
2014-03-17 14:14 0MD5只对数据加密是无法解密的,也就是说,你把100加密后,就 ... -
Android 获取网络时间
2014-03-12 11:42 2046Android 获取网络时间 在网上看到的最常见的方式有: ... -
SQLite清空表并将自增列归零
2014-03-05 18:02 1553SQLite清空表并将自增列归零 作者:Zhu Yanfeng ... -
Handler小看一下
2013-11-11 16:42 0android handler调用post方法还是阻塞 su ... -
Frame Animation小看一下
2013-10-12 16:30 791Demo运行效果图: 源码: -
动画小学一下
2013-10-12 16:14 739转自: http://www.eoeandroid.com/f ... -
Android 动画之ScaleAnimation应用详解
2013-10-12 15:49 1013===============eoeAndroid社区推荐:= ... -
android开发中的一个工具类
2013-06-19 16:04 0package com.wanpu.login.dialog; ... -
android TextView怎么设置个别字体颜色并换行?
2013-06-20 09:25 1693(1)、TextView 设置个别字体颜色 TextView ... -
Android开发之文件下载,状态时显示下载进度,点击自动安装
2013-05-07 15:38 1433在进行软件升级时,需要进行文件下载,在这里实现自定义的文件下载 ... -
android中的状态保存
2013-04-07 14:21 982package com.zzl.call; import ... -
android动画基础:tween动画
2013-04-06 11:21 1251工程结构图: [img] [/img] 四个动画的xml ... -
面试中遇到的几个问题
2013-06-09 11:56 1005SAX与DOM之间的区别 SAX ( ... -
Android获取其他包的Context实例,然后调用它的方法,反射!!!
2013-03-25 10:32 1225Android中有Context的概念,想必大家都知道。Con ... -
Android的内存机制和常见泄漏情形
2013-03-06 16:55 798一、 Android的内存机制 Android的程序由Ja ... -
JUnit测试小小demo
2013-03-06 16:37 1168运行效果图: [img] [/img] 项目结构图 ... -
android开发中的异常小工具
2013-03-04 15:53 901package com.zzl.tools; impor ...
相关推荐
《FastStone Capture Portable:全能屏幕截图与视频录制神器》 FastStone Capture Portable是一款深受用户喜爱的屏幕截图和视频录制工具,其v7.6版本以其绿色便携、功能全面的特点,成为了众多IT工作者和普通用户的...
同时,软件还提供了直接发送到Email、FTP服务器或者复制到剪贴板的功能,便于快速分享截图。 4. **定时截图**:对于需要定期捕获屏幕画面的情况,FSCapture的定时截图功能十分实用。用户可以设置间隔时间,让软件...
Screenpresso Pro是一款屏幕截图和视频截图软件,通过预先设置的截图快捷键,你可以对屏幕任意位置进行截图,截取的范围包括指定区域、全屏幕等。可以对正在播放的视频进行截图,也可以从网络摄像摄像头截图。截取...
* 屏幕截图 各种输出文件方式,可以自定灵活的文件名,以及输出到Word,Excel,PPT,画图,windows图片和传真查看器,外部编辑器(可自定义),发送到Email,FTP空间,Web空间 全屏 激活窗口 窗口控件 选择区域...
标题 "周期性的抓屏并发送EMAIL+c#" 描述了一个使用C#编程语言开发的Windows桌面应用程序,该程序具有定期截取屏幕快照并将其通过电子邮件发送的功能。这涉及到多个IT知识点,包括图形用户界面(GUI)设计、定时任务...
1.WEBScreenShot支持在IE等WEB Brower中使用屏幕截图功能,并把截图选择区以BMP/JPG/GIF格式上传到服务器或EMail到指定的邮箱中 2.用户可以任意选择截图中的区域,可以移动选择区,动态调整选择区大小,可以用笔涂鸦或用...
FSCapture是一款深受用户喜爱的屏幕截图软件,它以其高效、易用的特点在众多同类软件中脱颖而出。该工具不仅提供基础的截图功能,还集成了丰富的编辑工具,使得用户在捕获屏幕图像后能够进行快速编辑和处理,极大地...
在Linux或macOS中,可以使用X11或 Quartz 库来获取屏幕截图。在Python中,可以使用PIL(Python Imaging Library)或screenshot库来实现这一功能。 4. **图像处理**:截取的屏幕图像可能需要进行压缩或格式转换,...
与BUG射击,造成屏幕截图,并把他们送到各种bug跟踪和问题管理系统,电子邮件,图像编辑和即时消息应用程序是一件轻而易举的完成。 智能捕获模式 捕获 随着智能拍摄模式,这很简单,只要前所未有的捕捉画面。您可以...
"屏幕截图.jpg"则为用户提供软件界面和操作流程的直观展示,便于理解软件的使用方法;而"使用说明-readme.txt"则是详细的使用指南,解答用户在使用过程中可能遇到的问题。 "EMAIL verify 软件 v.1.78"的核心功能...
FSCapture是一款广受好评的屏幕截图软件,以其易用性和丰富的功能集而闻名。作为“gongju”(工具)类软件的代表,FSCapture满足了用户对高效截图和编辑的需求。以下我们将详细讨论FSCapture 7.7的主要功能和使用...
是一个功能强大的屏幕图像捕捉程序, 支持鼠标和快捷键两种捕捉方式, 支持任意图形、长方形、窗口、整个桌面四种捕捉范围, 捕捉后的图片可以直接复制到剪贴板, 保存为文件, 用Email发给朋友, 通过内置的FTP软件...
2. **PIL(Python Imaging Library)**: 用于截图功能,PIL是Python的一个图像处理库,能够捕获屏幕上的指定区域并保存为图像文件。在本项目中,我们可以通过PIL的`ImageGrab`模块来实现自动截图。 3. **Openpyxl**...
对于那些需要频繁截图的人来说,能够快速、准确地捕获并保存屏幕图像的能力是至关重要的。 此外,“非常好用”这一评价表明该软件的用户体验设计良好。这可能包括了直观的用户界面、清晰的指导提示、以及便捷的...
Faststone Capture是一款功能强大的屏幕截图工具,深受用户喜爱。它集成了多种截图方式,包括全屏、活动窗口、矩形区域、任意形状、滚动窗口等多种模式,满足用户在不同场景下的截图需求。软件体积小巧,运行速度快...
语法屏幕截图由Carbon( )进行专辑1个Basic.png2鹰航Component.png3 Ajax.png4 Single Data.png5 Multiple Data.png6 Input Focus Value.png7 Button Event.png8预览Image.png9从URL.png加载图像10鼠标Scroll.png11...
- **窗口截图**:FSCapture能自动识别并捕获屏幕上任何打开的窗口,包括活动窗口和非活动窗口。 - **全屏截图**:一键捕捉整个显示器的屏幕内容,方便快捷。 - **自由形状截图**:允许用户以自由曲线的形式选取...
IE浏览器截图插件LightShot for Internet ExplorerIE浏览器截图工具取代了标准的Windows PrtScr命令并允许您拍摄桌面上或整个屏幕所选区域本站提供的软件我们限于能力及系统等问题,无法保证所有软件都没有任何问题...
- `PIL`(Python Imaging Library):用于屏幕截图。 - `email`:Python内置模块,用于处理电子邮件消息。 - 另外,Python自带的一些模块也会被用到,例如`time`和`re`。 **环境搭建**: 1. 安装Python并配置...
5. **文件传输**:如果指令涉及文件,例如发送截图,Email My PC需要将文件附加到回邮中。Python的email和smtplib库可以帮助完成这一过程,包括文件的读取、编码和附件的创建。 6. **安全性**:由于涉及远程操作,...