开发者社区> 小弟的谷哥> 正文

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

简介: MainActivity如下: package cn.testshare1; import java.io.File; import java.util.
+关注继续查看

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应用程序之间共享文字和图片(一)
以下为TestReceiveShare1工程 MainActivity如下: package cn.testreceiveshare1; import java.
761 0
Android官方开发文档Training系列课程中文版:分享文件之请求一个共享文件
原文地址:http://android.xsoftlab.net/training/secure-file-sharing/request-file.html 当APP需要访问一个被其它APP所共享的文件时,这个APP通常需要发送一个请求给共享文件的那个APP(服务端),在大多数的情况下,这个请求会启动一个服务端的Activity,这个Activity会展示可以共享的文件。
802 0
有效控制Android应用程序的耗电量
  在对尚邮架构师的访谈中曾经探讨过移动开发是否要重视移动终端软件的耗电问题,答案是显而易见的!那么如何才能降低Android应用程序的耗电量呢?今天再一次回顾了一下09年Google IO大会Jeffrey Sharkey的演讲(Coding for Life — Battery Life, That Is),同时也讲一下应该如何有效地控制耗电量问题。
867 0
构建 Android 应用程序一定要绕过的 30 个坑
本文讲的是构建 Android 应用程序一定要绕过的 30 个坑,学习领域有两类人 - 一类是那些通过艰苦努力一步一步学习的人,一类是学习别人的经验教训走捷径的人。在此,我想分享一些自己的经验给大家:
918 0
Android应用程序之间共享文字和图片(二)
MainActivity如下: package cn.testshare1; import java.io.File; import java.util.
565 0
+关注
小弟的谷哥
welcome
766
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载