Android应用程序之间共享文字和图片(一)

以下为TestReceiveShare1工程

MainActivity如下:

package cn.testreceiveshare1;
import java.util.ArrayList;
import android.net.Uri;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;
import android.app.Activity;
import android.content.Intent;
/*** Demo描述:* 非系统自带Android应用之间传递文字和图片* 即在两个自写的应用之间传递文字和图片* * 注意事项:* 先部署TestReceiveShare1工程* 再部署TestShare1工程* * 参考资料:* http://blog.csdn.net/xiaanming/article/details/9428613*/
public class MainActivity extends Activity {private TextView mTextView;private ImageView mFirstImageView;private ImageView mSecondImageView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);initViews();handleReceivedIntent();}private void initViews(){mTextView=(TextView) findViewById(R.id.textView);mFirstImageView=(ImageView) findViewById(R.id.firstImageView);mSecondImageView=(ImageView) findViewById(R.id.secondImageView);}private void handleReceivedIntent(){Intent intent=this.getIntent();String aciton=intent.getAction();String type=intent.getType();System.out.println("aciton="+aciton+",type="+type);//情况一:欲分享的内容是文字if (aciton!=null&&type!=null&&Intent.ACTION_SEND.equals(aciton)&&"text/plain".equals(type)) {String content=intent.getStringExtra(Intent.EXTRA_TEXT);System.out.println("content="+content);mTextView.setText(content);}//情况二:欲分享的内容是一张图片if (aciton!=null&&type!=null&&Intent.ACTION_SEND.equals(aciton)&&"image/jpeg".equals(type)) {Uri pictureUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);if (pictureUri != null) {System.out.println("pictureUri="+pictureUri);mFirstImageView.setImageURI(pictureUri);}  }	//情况三:欲分享的内容是多张图片if (aciton!=null&&type!=null&&Intent.ACTION_SEND_MULTIPLE.equals(aciton)&&"image/jpeg".equals(type)) {ArrayList<Uri> pictureUrisArrayList = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);  if (pictureUrisArrayList.size()>0) {System.out.println("pictureUrisArrayList.size()="+pictureUrisArrayList.size());mFirstImageView.setImageURI(pictureUrisArrayList.get(0));mSecondImageView.setImageURI(pictureUrisArrayList.get(1));}  }		}
}


 

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"><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world" android:layout_centerHorizontal="true"android:textSize="20sp"android:layout_marginTop="50dip"/><ImageViewandroid:id="@+id/firstImageView"android:layout_width="80dip"android:layout_height="80dip"android:layout_centerHorizontal="true"android:layout_marginTop="150dip"/><ImageViewandroid:id="@+id/secondImageView"android:layout_width="80dip"android:layout_height="80dip"android:layout_centerHorizontal="true"android:layout_marginTop="290dip"/></RelativeLayout>

 

AndroidManifest.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="cn.testreceiveshare1"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="8" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name="cn.testreceiveshare1.MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter><!-- 处理文字的IntentFilter--><intent-filter><action android:name="android.intent.action.SEND" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="text/*" /></intent-filter><!-- 处理一张图片的IntentFilter --><intent-filter><action android:name="android.intent.action.SEND" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="image/*" /></intent-filter><!-- 处理多张图片的IntentFilter --><intent-filter><action android:name="android.intent.action.SEND_MULTIPLE" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="image/*" /></intent-filter></activity></application></manifest>


以下为TestShare1工程
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;@Overrideprotected 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 {@Overridepublic 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"><Buttonandroid:id="@+id/shareTextButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_marginTop="50dip"android:text="共享文字" /><Buttonandroid:id="@+id/sharePicButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_marginTop="150dip"android:text="共享一张图片" /><Buttonandroid:id="@+id/sharePicsButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_marginTop="250dip"android:text="共享多张图片" /></RelativeLayout>


 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国际数学大师评丘成桐:在哈佛,一人就是一个数学系

全世界只有3.14 %的人关注了青少年数学之旅丘成桐教授与蕉岭县乡亲们亲切交谈国际数学大师、阿贝尔奖获得者辛格评价丘成桐&#xff1a;“即使在哈佛&#xff0c;一个人就是一个数学系”《数学界的国王》是美国《纽约时报》刊登丘成桐人物报道的标题&#xff0c;此报道更是《纽…

你的密码已泄露!使用C#阻止弱密码

虽然&#xff0c;我们为了安全考虑&#xff0c;在注册用户时会检查密码规则&#xff0c;避免弱密码&#xff0c;比如百度的注册页面&#xff1a; 但是&#xff0c;现在的黑客也不会傻到用穷举的办法生成密码去攻击网站&#xff0c;更常用的方式是使用已泄露密码生成的字典。那这…

SVN的VS.NET插件——AnkhSVN

用了几个月SubVersionTortoiseSVN&#xff0c;感觉很不错。唯一美中不足的就是TortoiseSVN是在WINDOWS资源管理中进行操作的&#xff0c;在实际开发中&#xff0c;项目中新建了个文件&#xff0c;经常会忘记了将文件加入SVN管理。这样在下次提交时这个文件就不会被提交&#xf…

php 二维sort,php 二维数组排序

前提给定一个二维数组&#xff0c;请根据指定的数组key,写出最优的排序。排序条件age asc,sex desc&#xff0c;指定数组如下&#xff1a;$arr [[id>1, age>1, sex>6, name>a],[id>2, age>3, sex>1, name>c],[id>3, age>3, sex>1, name>b…

中国人数学好,数学思维差?

小天经常可以看到在微博热搜吐槽歪果仁数学不好的段子&#xff0c;比如6.8&#xff0c;我们习惯给11.8&#xff0c;让收银员找5块钱&#xff0c;但歪果仁就不行啦&#xff0c;这样他们会更乱&#xff01;所以我们容易觉得中国人数学好&#xff0c;算数特别快还准&#xff01;但…

Linux/Unix环境下的make命令详解

无论是在linux还是在Unix环境中&#xff0c;make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件&#xff0c;我们都经常要用到make或make install。利用make工具&#xff0c;我们可以将大型的开发项目分解成为多个更易于管理的模块&#xff0c;对于一个包…

[导入]心平气和,千佳骈集;意粗性躁,一事无成

以前自己常给别人说的一句话今天有人不经意间说给我听&#xff0c;颇觉其理——反正怎么过都是一天&#xff0c;还不如不要想那么多开心地过一天。经历挫折后&#xff0c;愈发觉到心胸开阔的重要。还是要作好总结与积累&#xff0c;由于工作忙已经一周没上CSDN回答问题了&#…

生产力提升! 自己动手自定义Visual Studio 2019的 类创建模板,制作简易版Vsix安装包...

序言最近一直在开发 webApi 接口&#xff0c;为了方便我采用了反Restful风格开发&#xff0c;90%的接口均采用post方式&#xff0c;小部分查询采用Get方式&#xff0c;接口的入参和出参定义每次都需要手动创建2个类&#xff0c;心不累手累&#xff0c;怎么能减轻点工作&#xf…

bo JAVA是什么意思,大家来讨论下业务层(BO)该做什么事?该怎样做事?该怎么解决...

Java code//实体类public class User {String name;String password;public User(){}public User(String name, String password) {super();this.name name;this.password password;}public String getName() {return name;}public void setName(String name) {this.name na…

【个人笔记】关于IO类中流的整理

学习IO部分的知识后&#xff0c;被处理流的各种类搞得有点乱&#xff0c;所以得写篇文章总结下。IO包里面有很多输入输出类&#xff0c;一般我们是通过控制流来控制输入输出的。IO包里面对于控制流分为两大类&#xff0c;一类是字节流&#xff0c;一类是字符流。字符流的两个大…

全国胸最小的省是哪个,你知道吗?| 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅&#xff08;图源网络&#xff0c;侵权删&#xff09;所以最大的是哪个省的↓ ↓ ↓

经典正则表达式(转)

正则表达式用于字符串处理&#xff0c;表单验证等场合&#xff0c;实用高效&#xff0c;但用到时总是不太把握&#xff0c;以致往往要上网查一番。我将一些常用的表达式收藏在这里&#xff0c;作备忘之用。本贴随时会更新。 匹配中文字符的正则表达式&#xff1a; [\u4e00-\u9…

.NET Core with 微服务 - Elastic APM

上一次我们介绍了Seq日志聚合组件。这次要给大家介绍的是Elastic APM &#xff0c;一款应用程序性能监控组件。APM 监控围绕对应用、服务、容器的健康监控&#xff0c;对接口的调用链、性能进行监控。在我们实施微服务后&#xff0c;由于复杂的业务逻辑&#xff0c;服务之间的调…

java 推送数据给js,Node.js实现数据推送

场景&#xff1a;后端更新数据推送到客户端(Java部分使用Tomcat服务器)。后端推送数据的解决方案有很多&#xff0c;比如轮询、Comet、WebSocket。1. 轮询对于后端来说开发成本最低&#xff0c;就是按照传统的方式处理Ajax请求并返回数据&#xff0c;在学校的时候实验室的项目一…

【开学季限时免费】下载19880元大数据开发全链路教程(视频+源码)

随着大数据、云计算、物联网、人工智能这些行业的发展崛起&#xff0c;对于大数据人才的需求越来越大&#xff0c;而大数据人才的培养发展周期相对较长&#xff0c;导致了大数据人才短缺&#xff0c;市场供不应求。所以也就出现了大数据开发工程师、数仓工程师、ETL工程师.....…

COM 组件设计与应用(七)

COM 组件设计与应用&#xff08;七&#xff09;编译、注册、调用作者&#xff1a;杨老师 一、前言  上两回中&#xff0c;咱们用 ATL 写了第一个 COM 组件程序&#xff0c;这回中&#xff0c;主要介绍编译、注册和调用方法。示例程序你已经下载了吗&#xff1f;如果还没有下载…

root目录空间不够的问题

今天导入mysql表的时候&#xff0c;提示write file error /tmp/xxx 原因是表太大&#xff0c;创建临时表的时候&#xff0c;tmp目录不够空间了。 找到一个解决方法&#xff1a; 使用 mount --bind mount --bind /home/tmp /tmp 这样会把 /home/tmp目录mount成tmp&#xff0c;原…

NET问答: 为什么 IEnumerablestring 不能被初始化?

咨询区 markzzz&#xff1a;我有下面的一个对象。IEnumerable<string> m_oEnum null;现在我想初始化它&#xff0c;然后我做了下面的尝试。IEnumerable<string> m_oEnum new IEnumerable<string>() { "1", "2", "3"};很遗憾…

java spring 单例模式,spring中的单例模式

spring依赖注入的bean默认都是单例模式&#xff0c;他们是怎么创建的&#xff1f;在AbstractBeanFactory类中的getBean方法中调用了getSingleton()方法来创建bean&#xff1a;Nullableprotected Object getSingleton(String beanName, boolean allowEarlyReference) {Object si…

人类史上20个“最强大脑”

全世界只有3.14 %的人关注了青少年数学之旅今天给大家说道说道这人类历史上20位最强大脑&#xff0c;这些伟人来自各个不同的时期和领域&#xff0c;他们的思想和贡献对人类日后有着重大的影响&#xff0c;其中包括了众多的科学家&#xff0c;哲学家&#xff0c;诗人&#xff0…