Android+Sqlite 实现古诗阅读应用(三)
往期传送门:
Android+Sqlite 实现古诗阅读应用(一)
Android+Sqlite 实现古诗阅读应用(二)
加入截图分享的功能。
很多应用都有分享的功能,我也想在我的古诗App里加入这个功能,单纯的发送文字看起来太逊了,我决定模仿UC浏览器那样发送古诗的截图,使用官方的分享需要授权KEY,太过麻烦所以打算使用系统的分享。
1.在meau里添加这个item:
<item
android:id="@+id/menu_item_share"
android:showAsAction="ifRoom"
android:title="分享"
/>

2.新建全局变量Intent:
private void setshare(){
sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_STREAM, shot());
sendIntent.setType("image/jpeg");
}
然后在meau的onOptionsItemSelected()方法里设置按下运行setshare()方法,新建一个intent,设置活动为send,然后传入的参数,是一个图片的uri通过shot生成。
private Uri shot() {
View view = getWindow().getDecorView();
Display display = this.getWindowManager().getDefaultDisplay();
view.layout(0, 0, display.getWidth(), display.getHeight());
view.setDrawingCacheEnabled(true);//允许当前窗口保存缓存信息,这样getDrawingCache()方法才会返回一个Bitmap
Rect frame = new Rect();
this.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
// 获取屏幕长和高
int width = this.getWindowManager().getDefaultDisplay().getWidth();
int height = this.getWindowManager().getDefaultDisplay()
.getHeight();
TypedArray actionbarSizeTypedArray = this.obtainStyledAttributes(new int[]{ //测量actionbar的宽度
android.R.attr.actionBarSize});
int h = (int)actionbarSizeTypedArray.getDimension(0, 0);
Bitmap bmp = Bitmap.createBitmap(view.getDrawingCache(),0, statusBarHeight+h, width, height //传入的几个参数分别为,数据源(要截的view),x轴坐标,y轴坐标,宽,长(屏幕-srarusbar-actionbar)
- statusBarHeight-h);
File f = new File(Environment.getExternalStorageDirectory(), //写入文件流
"output_image.jpg");
FileOutputStream fOut = null;
try {
fOut = new FileOutputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
bmp.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
try {
assert fOut != null;
fOut.flush();
} catch (IOException e) {
e.printStackTrace();
}
try {
fOut.close();
} catch (IOException e) {
e.printStackTrace();
}
return Uri.fromFile(f); //返回生成的文件的URI
}
然后:
case R.id.menu_item_share:
setmShareActionProvider();
startActivity(Intent.createChooser(sendIntent,"图片"));
break;
设置点击启动,就大功告成了,我们就能截到图片,而且没有actionbar和statusbar的干扰了。

发送了图片
接收到图片

嗯,有朋友反映之前的一篇内容太多了,看代码感觉特别乱,这次的就减少了很多,不过这个小功能虽然小,但是还是很有用的,很多东西都会用到截图分享的功能哦。
喜欢的请点赞吧!!!
Android+Sqlite 实现古诗阅读应用(三)的更多相关文章
- Android+Sqlite 实现古诗阅读应用(二)
传送门:Android+Sqlite 实现古诗阅读应用(一) Hi,又回来了,最近接到很多热情洋溢的小伙伴们的来信,吼开心哈,我会继续努力的=-=! 上回的东西我们做到了有个textview能随机选择 ...
- Android+Sqlite 实现古诗阅读应用(一)
不说网络app,很多本地的app都有一些随机的内容推送,比如随机推送一些小知识,古诗,名言名画什么的,界面制作的好看一点就能看起来特别的文艺范, 最近就是看了这样的一些应用,就想自己实现一下,这种方法 ...
- 【原】FMDB源码阅读(三)
[原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...
- Android SQLite总结(一) (转)
Android SQLite总结(一) 郑海波 2012-08-21 转载请声明:http://blog.csdn.net/nuptboyzhb/article/details/7891887 前言 ...
- Android SQLite 数据库详细介绍
Android SQLite 数据库详细介绍 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用 ...
- [Learn Android Studio 汉化教程]第三章:使用 Android Studio 编程
[Learn Android Studio 汉化教程]第三章:使用 Android Studio 编程 本章包含如何在 Android Studio 中书写或生成代码. Android Studio ...
- Android SQLite 数据库 增删改查操作
Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...
- Android SQLite总结[转载]
[转载] :http://blog.163.com/zqy216_2008/blog/static/4119371820119954812509/ 最近在做的项目涉及到了SQLite,大学时没有好好学 ...
- Android SQLite与ListView的简单使用
2017-04-25 初写博客有很多地方都有不足,希望各位大神给点建议. 回归主题,这次简单的给大家介绍一下Android SQLite与ListView的简单使用sqlite在上节中有介绍,所以在这 ...
随机推荐
- 经典 HTML5 & Javascript 俄罗斯方块游戏
Blockrain.js 是一个使用 HTML5 & JavaScript 开发的经典俄罗斯方块游戏.只需要复制和粘贴一段代码就可以玩起来了.最重要的是,它是响应式的,无论你的显示屏多么宽都能 ...
- (转)JavaScript二:JavaScript语言的基本语法要求
摘自:http://blog.csdn.net/erlian1992 要学习好JavaScript,首先我们要懂JavaScript语言的一些基本语法要求: 一,区分大小写 JavaScript语言区 ...
- angularJs , json,html片段,bootstrap timepicker angular
css .demotest { width: %; height: auto; overflow: auto; position: relative; margin: auto; margin-top ...
- [deviceone开发]-echart的简单报表示例
一.简介 echart是一个常用的基于h5的报表库.这个例子简单展示了实现折线图,柱状图,圆环图和圆饼图的使用. 并实现和do的非html部分的数据交互. 二.效果图 三.相关下载 https://g ...
- angular源码分析:angular中的依赖注入式如何实现的
一.准备 angular的源码一份,我这里使用的是v1.4.7.源码的获取,请参考我另一篇博文:angular源码分析:angular源代码的获取与编译环境安装 二.什么是依赖注入 据我所知,依赖注入 ...
- ARP投毒及其防御方法
1.攻击原理 ARP欺骗就是中间人欺骗pc机,告诉pc机它是服务器.再欺骗服务器,告诉服务器它就是pc机.以致获取服务器与pc机的会话信息. 中间人欺骗服务器时,会给服务器发一个报文,发之前把报文中的 ...
- Sharepoint学习笔记—习题系列--70-576习题解析 -(Q29-Q31)
Question 29 You are designing a SharePoint 2010 intranet site at your company. The accounting depart ...
- Jquery分页功能
Jquery代码 /// <reference path="jquery-1.9.1-vsdoc.js" />//锚点var anchor="#apage&q ...
- 代码创建storyboard
代码创建storyboard方式如下 // 加载storyboard UIStoryboard *storyboard = [UIStoryboard StoryboardWithName:@&quo ...
- Android 从Gallery获取图片
本文主要介绍Android中从Gallery获取图片 设计项目布局 <LinearLayout xmlns:android="http://schemas.android.com/ap ...