android分享图片到qq,Android实现截图分享qq,微信
Android实现截图分享qq,微信
立即下载
金额: 3 元
支付方式:
友情提醒:源码购买后不支持退换货
立即支付
发布时间:2018-05-23
概述
android上封装工具类,一行实现截屏分享到qq等第三方功能
详细
###前言
现在很多应用都有截图分享的功能,今天就来讲讲截图分享吧
今天涉及到以下内容:
1. android权限设置及申请
2. 截图分享功能解析
3. 截图分享功能的调用
4. 项目结构图和效果图
####一. android权限设置及申请
在实现截图分享功能的的时候,会涉及到读写权限的申请问题。
第一步,你需要在mainfast.xml中注册读写权限:
```
```
为了适应android6.0及以上手机的使用,我们最好也要加上6.0以上读写权限的申请。关于android6.0以上权限的申请,我之前封装过一个工具类,使得权限申请变得异常简单,有兴趣的同学可以看看我的另一篇文章:
[android权限申请Permission](http://www.demodashi.com/demo/12432.html)
这里就不做详细解释了。
####二.截图分享功能解析
#####2.1 原理
截屏分享的原理是首先获取当前屏幕的bitmap,然后将它生成图片文件保存到本地,接着调用分享功能,将它分享到你要分享的地方,下面做些讲解。
#####2.2 获取屏幕大小
在截屏开始的时候,需要获取屏幕的宽高:
```
DisplayMetrics dm = new DisplayMetrics();
WindowManager mWindowManager = (WindowManager) AppContext.getInstance().getSystemService(Context.WINDOW_SERVICE);
Display display = mWindowManager.getDefaultDisplay();
display.getMetrics(dm);
int width = dm.widthPixels;
int height = dm.heightPixels;
```
然后是获取屏幕的bitmap:
```
Bitmap bmp = view.getDrawingCache();
bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height - statusBarHeight);
```
获取bitmap之后,我们需要将bitmap保存到本地,保存之前,我们需要在手机上设置一个保存路径,sdard的判断必不可少:
```
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
return true;
}
return false;
```
在sdcard存在的情况下,获取手机内部缓存路径:
```
File cacheFile = AppContext.getInstance().getExternalCacheDir();
```
然后将bitmap保存到本地:
```
try {
// 图片文件路径
imagePath = getDiskCachePath()+"share.png";
LogUtil.i("====imagePath====" + imagePath);
File file = new File(imagePath);
FileOutputStream os = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, os);
os.flush();
os.close();
return imagePath;
} catch (Exception e) {
LogUtil.e("====screenshot:error====" + e.getMessage());
}
```
这一切搞定后,调用分享功能:
```
//分享
if(StringUtil.isNotEmpty(path)){
ShareImage(context,path);
}
```
以上是对截屏分享的一个原理流程介绍,代码显得有些杂乱,不过不要紧,我已经将这些代码整合成一个工具类ShotShareUtil,方便大家调用,下面看看ShotShareUtil在mainActivity中的调用吧
####三.截图分享功能的调用
直接给出MainActivity的代码吧,方便大家理解:
```
package com.android.testdemo.main;
import android.view.View;
import android.widget.Button;
import com.android.testdemo.R;
import com.android.testdemo.base.BaseActivity;
import com.android.testdemo.base.LogUtil;
import butterknife.BindView;
public class MainActivity extends BaseActivity{
@BindView(R.id.button1)
Button mBtnText;
@Override
protected int getContentViewId() {
return R.layout.activity_main;
}
@Override
protected void initData() {
//这里需要检测android6.0以上读写权限,关于权限申请我之前已经讲过,有需要的同学可以参考以下链接
//android6.0以上权限申请:http://www.demodashi.com/demo/12432.html
}
@Override
protected void setListener() {
mBtnText.setOnClickListener(this);
}
@Override
public void onClick(View v) {
super.onClick(v);
switch (v.getId()) {
case R.id.button1:
LogUtil.i("=====截屏分享====");
ShotShareUtil.shotShare(mContext);
break;
default:
break;
}
}
}
```
activity_main.xml文件中就布了一个按钮,方便测试:
```
```
最后给出项目结构图和效果图
####四.项目结构图和效果图
> 项目结构图
![项目效果图](/contentImages/image/20180523/8JnZ0jOemrsFCyyugCO.png "项目效果图")
> 运行效果图
![运行效果图](/contentImages/image/20180523/H74u4JjeAHcr3WeUT9g.gif)
android分享图片到qq,Android实现截图分享qq,微信相关推荐
- android 代码分享图片不显示,android原生分享图片失败的问题
原生分享代码没有错,但是总是分享失败 Android分享图片的分享代码如下 public static void shareImages(Context context, ArrayList uriL ...
- android自定义图片加载,Android自定义ProgressDialog加载图片
为了提高用户体验,我们肯定希望该Dialog能更加炫酷,让用户看着更舒服.那如何做呢,当然是我们自己定义一个ProgressDialog了. 一.使用系统加载框 mDialog = new Progr ...
- android imageview图片旋转动画,Android 安卓动画 属性动画 - 旋转动画
引入 属性动画的出现,弥补了补间动画的不足之处,补间动画,只是改变了表面上的东西,但是其中属性并未改变,而属性动画相反,改变了表面上的东西,并且也更改了其属性. 类:ObjectAnimator 用于 ...
- android 矢量图片使用方法,Android中的矢量图
概述 VectorDrawable是通过XML文件中的一系列点,线和曲线及其相关颜色信息定义的. 使用VectorDrawable的主要优点是图像可扩展性. 它可以缩放而不损耗显示质量,这意味着相同的 ...
- android 静态图片自动切换,Android静态图片人脸识别的完整demo(附完整源码)
Android静态图片人脸识别的完整demo(附完整源码) 来源:互联网 作者:佚名 时间:2015-03-24 20:07 本文介绍了android静态识别人脸并进行标记人眼位置及人脸框的完整dem ...
- android设置图片 透明度渐变效果,android 自定义属性实现 ImageView 透明度渐变效果...
先看效果图: 第一步: 在valuses下面自定义目录: 第二步: 自定义ImageView package com.jiaruihuademo.myattrimageview; import jav ...
- android都图片mat_普通Android码农,该如何逆袭月薪5W的移动端架构师?
作为一名普通安卓码农,我相信大家都有一个成为移动端架构师的梦. 毕竟,安卓行业越来越内卷,这都是一个老生常谈的话题了.如今会写xml和Activity的程序员一抓一大把,如果你只是一名普通的安卓码农, ...
- android 自适应图片轮播,Android使用Recyclerview实现图片轮播效果的方法
Android使用Recyclerview实现图片轮播效果的方法 发布时间:2020-06-23 15:47:58 来源:亿速云 阅读:113 作者:清晨 这篇文章将为大家详细讲解有关Android使 ...
- android显示图片部分区域,Android编程实现只显示图片一部分的方法
本文实例讲述了Android编程实现只显示图片一部分的方法.分享给大家供大家参考,具体如下: 在Android应用程序中加载一张图片,然后把它显示出来这是一件非常容易的事情,那怎么才能显示一张图片的一 ...
- android 调用图片裁剪功能,Android图片裁剪,合成(调用系统裁剪功能)
做照片相框 步骤就是跟美图秀秀一样,先截图,然后添加相框 在之前Bitmap.createBitmap那个文里,说过使用jpg图片会挡住底层图片,用画这种方法合成图片,没有问题. public cla ...
最新文章
- html中多边形图形怎么制作,CSS制作图形速查表
- python字典嵌套列表怎么访问值的某个元素_通过键列表访问嵌套字典项?
- IT职场人生系列之五:怎样面试
- ccs安装多版本编译器离线_windows 安装mysql多版本 主从复制
- Docker Centos安装 Openssh
- 如何在矩池云GPU云中安装MATLAB R2016b软件
- 【PAT乙】1001 害死人不偿命的(3n+1)猜想 (15分) 模拟,水水更健康
- Object.defineProperty 接口浏览器实现的bug.和疑惑
- Mybatis插入postgresql数据库中类型为UUID的字段
- ANSYS18的简略安装教程
- 画图相关 ppt visio 画图高清转移到word中
- Android实例(一)—— 3D画廊
- Linux家目录被误删除恢复
- Linux TC 流量限速
- 百度旋转验证码识别平台接口文档
- 环境搭建以及一些命令的记录
- Nemty 勒索软件代码中包含对杀毒软件公司的强烈措辞
- 【更新中21/31】NTIRE 2022 ESR(efficient super-resolution) 方案与结果
- Python基础,day2
- 计算机专业山东省内大学排名,山东计算机科学与技术专业大学排名 2020年省内录取分数线...