以下为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"     >    <TextView        android: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"    />        <ImageView        android:id="@+id/firstImageView"        android:layout_width="80dip"        android:layout_height="80dip"        android:layout_centerHorizontal="true"        android:layout_marginTop="150dip"    />         <ImageView        android: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-sdk        android:minSdkVersion="8"        android:targetSdkVersion="8" />    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android: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"    >    <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>


更多相关文章

  1. Android 高德地图给指定坐标显示图片,以及聚合显示
  2. Android 中获取图片占内存的大小
  3. android 判断ImageView当前显示的是哪一张图片
  4. android 用post方式上传图片到服务器
  5. Android给图片加水印
  6. android实现发送Email功能(从相册中选择图片作为附件)
  7. 内容提供器

随机推荐

  1. Android UI开发点点滴滴(基本控件)
  2. Android简单自定义圆形和水平ProgressBar
  3. 线程安全
  4. android EditText 隐藏软键盘(输入法不显
  5. Android UI开发第七篇之Android Gallery
  6. Android 面试题7
  7. Android群英传第四章笔记·ListView使用
  8. Android 中文API (38) —— Spinner
  9. botoom tab + title bar
  10. TabLayout绑定Viewpager后不显示文字