Android应用程序之间共享文字和图片(二)
MainActivity如下:
package cn.testshare1;
import java.io.File;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
* Demo描述:
* Android应用程序之间共享文字和图片
*
* 参考资料:
* http://www.vmeitime.com/post/2012-06-08/40027373105
*/
public class MainActivity extends Activity {
private Button mTextButton;
private Button mPictureButton;
private Button mPicturesButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init(){
mTextButton=(Button) findViewById(R.id.shareTextButton);
mTextButton.setOnClickListener(new ClickListenerImpl());
mPictureButton=(Button) findViewById(R.id.sharePicButton);
mPictureButton.setOnClickListener(new ClickListenerImpl());
mPicturesButton=(Button) findViewById(R.id.sharePicsButton);
mPicturesButton.setOnClickListener(new ClickListenerImpl());
} private class ClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.shareTextButton:
shareText("这是要分享的内容");
break;
case R.id.sharePicButton:
sharePicture();
break;
case R.id.sharePicsButton:
sharePictures();
break; default:
break;
} } } //共享文字
private void shareText(String string) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, string);
intent.setType("text/plain");
Intent.createChooser(intent,"共享文字");
startActivity(intent);
} //共享一张图片
private void sharePicture(){
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
File file = new File(Environment.getExternalStorageDirectory()+File.separator+"test1.png");
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
intent.setType("image/jpeg");
Intent.createChooser(intent, "共享一张图片");
startActivity(intent);
} //共享多张图片
private void sharePictures(){
ArrayList<Uri> picturesUriArrayList=new ArrayList<Uri>(); File pictureFile1=new File
(Environment.getExternalStorageDirectory()+File.separator+"test1.png");
File pictureFile2=new File
(Environment.getExternalStorageDirectory()+File.separator+"test2.png"); Uri pictureUri1=Uri.fromFile(pictureFile1);
Uri pictureUri2=Uri.fromFile(pictureFile2); //不是很好的方式:
//因为某些机型报错
//Uri pictureUri1=Uri.parse("file:///mnt/sdcard/test1.png");
//Uri pictureUri2=Uri.parse("file:///mnt/sdcard/test2.png"); //错误的方式:
//Uri pictureUri1=Uri.parse
//(Environment.getExternalStorageDirectory()+File.separator+"test1.png");
//Uri pictureUri2=Uri.parse
//(Environment.getExternalStorageDirectory()+File.separator+"test2.png"); picturesUriArrayList.add(pictureUri1);
picturesUriArrayList.add(pictureUri2); Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, picturesUriArrayList);
intent.setType("image/jpeg");
Intent.createChooser(intent, "共享多张图片");
startActivity(intent);
} }
main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
> <Button
android:id="@+id/shareTextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dip"
android:text="共享文字"
/>
<Button
android:id="@+id/sharePicButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="150dip"
android:text="共享一张图片"
/>
<Button
android:id="@+id/sharePicsButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="250dip"
android:text="共享多张图片"
/> </RelativeLayout>
Android应用程序之间共享文字和图片(二)的更多相关文章
- Android应用程序之间共享文字和图片(一)
以下为TestReceiveShare1工程 MainActivity如下: package cn.testreceiveshare1; import java.util.ArrayList; imp ...
- Android应用程序组件Content Provider在应用程序之间共享数据的原理分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6967204 在Android系统中,不同的应用 ...
- Android 应用程序之间内容分享详解(二)
转载请注明出处:http://blog.csdn.net/xiaanming/article/details/9428613 Android 应用程序之间内容分享详解(一) 之前给大家分享了你开发的应 ...
- 程序与程序之间共享对象:MarshalByRefObject
源自于:http://stackoverflow.com/questions/439173/message-pumps-and-appdomains/442316 程序与程序之间共享对象: Marsh ...
- DELPHI编写服务程序总结(在系统服务和桌面程序之间共享内存,在服务中使用COM组件)
DELPHI编写服务程序总结 一.服务程序和桌面程序的区别 Windows 2000/XP/2003等支持一种叫做“系统服务程序”的进程,系统服务和桌面程序的区别是:系统服务不用登陆系统即可运行:系统 ...
- Android 应用程序之间内容分享详解(一)
一个Andoird应用程序的重要的地方是他们有相互沟通和整合的能力,一个应用程序可以和另一个应用程序交互,接下来我们来看看Android应用之间的内容分享 当你构建Intent的时候,必须要指定Int ...
- Android应用程序与SurfaceFlinger服务之间的共享UI元数据(SharedClient)的创建过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/7867340 在前面一篇文章中,我们分析了And ...
- Android应用程序组件Content Provider的共享数据更新通知机制分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6985171 在Android系统中,应用程序组 ...
- iOS应用程序间共享数据
我们知道iOS由于沙盒的存在,应用程序不能越过自己的区域去访问别的存储空间的内容,不过可能有许多场景我们需要在应用程序之间共享数据,比如多个应用共用用户名密码进行登录等.虽然我们不能直接通过文件系统来 ...
随机推荐
- SQL读取系统时间的语法(转)
--获取当前日期(如:yyyymmdd) select CONVERT (nvarchar(12),GETDATE(),112) --获取当前日期(如:yyyymmdd hh:MM:ss)select ...
- css基础回顾-定位:position
w3school 对position定义和说明是: 定义和用法: position 属性规定元素的定位类型. 说明: 这个属性定义建立元素布局所用的定位机制.任何元素都可以定位,不过绝对或固定元素会生 ...
- 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全
日志分类: 1. 连接时间的日志 连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,不过这 两个文件无法直接cat查看,并且该文件由系统自动更新,可以通过如下: ...
- c-100米球反弹
#include <iostream> #define TIMES 10 int main(void) { ; ; //第一次反弹的高度. ; i <= TIMES; i++) { ...
- 设置Cacti图形标题能显示中文
1.查看系统是否带有中文字体包 # ls /usr/share/fonts/chinese 如没有则安装 # yum -y install fonts-chinese 2.设置cacti使用的rr ...
- 如何安装Oracle Database 11g数据库
先选择你适合你的系统版本,32位系统的请选择32位的,64位系统可以使用32位也可以使用64位,建议采用64位的! 适用于 Microsoft Windows(32 位)的 Oracle Databa ...
- Git简明教程
http://www.jianshu.com/p/16ad0722e4cc http://www.jianshu.com/p/f7ec8310ccd2
- UITableView出现卡顿如何处理
tableView的beginUpdate和endUpdate要比reloadData和reloadRowsAtIndexPaths好,因为beginUpdate和endUpdate会执行一个动画bl ...
- 武汉科技大学ACM :1008: 华科版C语言程序设计教程(第二版)习题6.14
Problem Description 输入一个八进制的字符串,将它转换成等价的十进制字符串,用pringf的%s格式输出. Input 首先输入一个正整数t,表示有t组测试数据(1<= t & ...
- linux入门。删除不用到内核,为boot分区释放空间
在终端中输入如下命令: dpkg --get-selections|grep linux-image 这时会列出系统中所有到内核. 你可以使用 uname -a 查看你当前使用到内核. 然后用 sud ...