本地分享总结

  1. 文章调起来分享:自己程序调起来分享列表
  2. Intent email = new Intent(android.content.Intent.ACTION_SEND);
  3. email.setType("text/plain");
  4. // 设置邮件默认地址
  5. // email.putExtra(android.content.Intent.EXTRA_EMAIL, "1");
  6. // 设置邮件默认标题
  7. email.putExtra(android.content.Intent.EXTRA_SUBJECT,
  8. "我是邮件的标题");
  9. // 设置要默认发送的内容
  10. email.putExtra(android.content.Intent.EXTRA_TEXT,
  11. "我是分享的内容");
  12. // 调用系统的邮件系统
  13. activity.startActivity(Intent.createChooser(email, "分享方式"));


调起来分享处理:接收图库中设置分享

<activity

android:name="com.huika.huixin.control.hxcircle.activity.PublishDynamicActivity"

android:icon="@drawable/ic_launcher"

android:label="@string/share_to_sns"

android:launchMode="singleTask"

android:screenOrientation="portrait"

android:windowSoftInputMode="adjustResize" >

<intent-filter>

<action android:name="android.intent.action.SEND" />

<category android:name="android.intent.category.DEFAULT" />

<data android:mimeType="image/*" />(这里只是配置的图片分享,也可以配置文本分享)

</intent-filter>

</activity>


/**

* @description:从图库中设置分享;

* @author samy

* @date 2014年9月5日 上午9:40:42

*/

private void initActivitystate(Intent intent) {

if (Intent.ACTION_SEND.equals(intent.getAction())) {

Bundle extras = intent.getExtras();

final String mimeType = intent.getType();

if (extras.containsKey(Intent.EXTRA_STREAM)) {

Uri uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM);

if (uri != null && !TextUtils.isEmpty(uri.toString()) && mimeType.startsWith("image/")) {

String path = ImageTools.uriConvert2path(this, uri);

if (!TextUtils.isEmpty(path)) {

Bimp.clearBimp();

File uploadFile = ImageTools.saveImgForUpload(path);

Bimp.drr.add(uploadFile.getAbsolutePath());

}

}

else {

Toast.makeText(this, "分享失败", Toast.LENGTH_SHORT).show();

}

}

}

}

public static String uriConvert2path(Context c, Uri uri) {

String imagePath = null;

String uriStr = uri.toString();

if (uriStr.startsWith("file://")) {

imagePath = uriStr.replaceFirst("file://", "");

}

else {

String[] proj = { MediaStore.Images.Media.DATA };

Cursor cursor = c.getContentResolver().query(uri, proj, null, null, null);

if (cursor != null) {

int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

cursor.moveToFirst();

imagePath = cursor.getString(column_index);

cursor.close();

}

}

return imagePath;

}

/**

* 保存拍照后的图片,用于上传

*/

public static File saveImgForUpload(String tempFilePath) {

BitmapFactory.Options opts = new BitmapFactory.Options();// 获取缩略图显示到屏幕上

opts.inJustDecodeBounds = true;

BitmapFactory.decodeFile(tempFilePath, opts);

int srcSize = opts.outHeight * opts.outWidth;

if (srcSize > UPLOAD_IMG_SIZE) {// 超过最大值

opts.inSampleSize = computeSampleSize(opts, -1, UPLOAD_IMG_SIZE);

}

else {

opts.inSampleSize = 1;

}

opts.inJustDecodeBounds = false;

// 拿到之前旋转的角度

int degree = readPictureDegree(tempFilePath);

if (opts.inSampleSize == 1 && degree == 0) {// 既没有旋转也没有超过大小,直接上传原图

return new File(tempFilePath);

}

// 旋转图片 动作

Matrix matrix = new Matrix();

matrix.postRotate(degree);

Bitmap bitmap = null;

Bitmap resizedBitmap = null;

File picFile = null;

FileOutputStream fos = null;

try {

bitmap = BitmapFactory.decodeFile(tempFilePath, opts);

// 创建新的图片

resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);

try {

picFile = initTempFile();

fos = new FileOutputStream(picFile);

if (opts.inSampleSize > 1 && opts.inSampleSize <= 4) {// 测试结果

int rate = (int) (100 * (1 - (srcSize - UPLOAD_IMG_SIZE) * 0.2 / UPLOAD_IMG_SIZE));

rate = Math.max(rate, 50);

rate = Math.min(rate, 100);

resizedBitmap.compress(Bitmap.CompressFormat.JPEG, rate, fos);

}

else {

int divide = opts.inSampleSize * UPLOAD_IMG_SIZE;

int rate = (int) (100 * (1 - (srcSize - divide) * 0.015 / divide));

rate = Math.max(rate, 50);

rate = Math.min(rate, 100);

resizedBitmap.compress(Bitmap.CompressFormat.JPEG, rate, fos);

}

fos.flush();

}

catch (Exception e) {

e.printStackTrace();

}

}

finally {

if (bitmap != null)

bitmap.recycle();

if (resizedBitmap != null)

resizedBitmap.recycle();

if (fos != null)

try {

fos.close();

}

catch (IOException e) {

e.printStackTrace();

}

}

return picFile;

}

来自为知笔记(Wiz)

时间: 2024-08-11 07:39:47

本地分享总结的相关文章

android本地分享

分享的方法: private void  nativeShare() { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, "分享内容....."); startActivity(Intent.createChooser(intent, "分享标题")); } 如何自定义可

软件共享平台的NABCD

Need: 我感觉我们这个软件很适合现在的大学生,特别是大一大二的学生,由于在大学里面学生都在各忙各的,学生遇到问题如果自己在网上查找,这就需要花费大量的时间,如果有了这个软件学生和老师都可以在这个平台上分享一些重要的知识点,能解决大一大二学生好多问题: Aproach: 做法正在讨论中: Benefit: 我们这个软件能够解决大一大二学生在学习过程中遇到的高数.c++.概率论等问题, 学生自己可以在我们这个平台上找到老师.学长分享的课件.笔记,方便查询: Competitor: 我们这个软件是

JavaScript强化教程——Native.js示例汇总

本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:JavaScript强化教程 -- Native.js示例汇总 Native.js虽然强大和开放,但很多web开发者因为不熟悉原生API而难以独立完成. 这篇帖子的目的就是汇总各种写好的NJS代码,方便web开发者. 众人拾柴火焰高,有能力的开发者多多提交NJS代码,大家都会给你点赞的, Android平台 在桌面创建和删除App快捷方式 见Hello H5+里Native.js部分演示及源码. 或在这里搜索"快捷方式",h

互联网点对点通讯(P2P)

摘自: http://www.cnblogs.com/zhili/archive/2012/09/14/p2p_pnpr.html [C# 网络编程系列]专题八:P2P编程 引言: 前面的介绍专题中有朋友向我留言说介绍下关于P2P相关的内容的,首先本人对于C#网络编程也不是什么大牛,因为能力的关系,也只能把自己的一些学习过程和自己的一些学习过程中的理解和大家分享下的,下面就进入正题——P2P(Peer to Peer)编程 一.P2P的介绍 首先,现在大家熟知的BT.电驴.迅雷.QQ.MSN和P

BroadLink智能遥控器

BroadLink从智能插座开始,逐渐实现它的平台之路,这些产品的技术含量都不高,但是体验总体是不错的,是个值得赞的产品.过段时间,拆解看看内部实现.这款遥控器可以通过“学习”按键,实现用手机取代各种遥控器的功能. 设备环境:投影仪,音响,DVD,小米盒子 4个设备,4个遥控 原始体验:非常不方便,要用小米盒子看个东西,至少得用3个遥控. BroadLink体验:使用自定义遥控,一个界面搞定!有粘性,真实解决了问题. 核心功能 1.有内置遥控器,可直接选用,比如小米盒子遥控,不用设置 2.wif

给大家分享web开发新手修改hosts文件实现本地域名访问的正确方法

1.如何正确修改hosts文件: 一般打开hosts文件里面都会有个示例,按照其格式修改即可 比如以下内容: # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host 即代表打开rhino.acme.com这个网址将解析到102.54.94.97,ip地址与网址间至少有一空格,当然建议通过按Table键来编辑,即美观又不容易编写失误;这也就是通过解

微信朋友圈最新赚钱模式“本地生活信息分享

微信赚钱大家应该不再陌生了,最常见的就是微信朋友圈卖面膜,化妆品了.一个上万块钱的诱惑吸引了不少人.当然,也有好多都知道这只是变形的"xx"自拍,自夸,自打款的方式来欺骗别人加盟.卖的不是产品,只是为了收下线.不管微信卖什么,大多用的都是用这种模式.今天邵连虎博客就给大家分享一个利用分享本地生活信息挣钱的案例. 前段时间,邵连虎写了一篇文章.这篇文章就详细的介绍了这个案例的内容.从那以后有几个月的时间了,这几个月中我的发现微信朋友圈有更多的人发布这种信息了.我不明白的是,这种模式根本没

微信分享文本、图片(本地、二进制、网络图片)、音频、视频、Gif动态图片、网页信息--大汇总

首先是申请微信开放平台https://open.weixin.qq.com/ 根据提示在管理中心创建一个移动应用,最好是自己的公司的上线APP,这样审批容易通过, 审批通过后,会为创建的移动应用下发APP_ID.AppSecret 另外在网站上下载android版本的jar包即可libammsdk.jar 即可进行操作了 ~~~~~~~~~~~~~~~~开始吧,用的测试机,没有sd卡,另外我的台式机没有wifi,所以代码没测试,我后期会补上的~~~~~~~~~~~~~~~~~ activity_

重新想象 Windows 8.1 Store Apps (81) - 控件增强: 加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图

原文:重新想象 Windows 8.1 Store Apps (81) - 控件增强: 加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图 [源码下载] 作者:webabcd 介绍重新想象 Windows 8.1 Store Apps 之控件增强 WebView 加载本地 html,智能替换 html 中的 url 引用 WebView 通过 Share Contract 分享 WebVi