安卓学习-App内容分享

image

一.分享文本和图片内容

image

image

二.分享多件内容和接收

image

image

image

三.使用ShareActionProvider

image

 

案例:image点击分享简单的文本内容image

点击分享图片内容 image

点击分享多个图片image

使用ShareActionProvider点击菜单效果imageimage

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.administrator.myapplication.MainActivity">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="分享简单的文本内容"
android:id="@+id/button"
android:onClick="sharedSimpleContentClick"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="分享图片内容"
android:id="@+id/button2"
android:layout_below="@+id/button"
android:onClick="sharedImageContentClick"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="分享多个内容"
android:id="@+id/button3"
android:onClick="sharedMultipleContentClick"
android:layout_below="@+id/button2"
android:layout_alignRight="@+id/button2"
android:layout_alignEnd="@+id/button2" />
</RelativeLayout>

MainActivity.java

package com.example.administrator.myapplication;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.ActionBarActivity;

import android.support.v7.widget.ShareActionProvider;
import android.view.Menu;

import android.view.MenuItem;
import android.view.View;


import java.util.ArrayList;

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

//分享简单文本内容
public void sharedSimpleContentClick(View view)

{
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "你是猪吗?^(* ̄(oo) ̄)^");
// startActivity(intent);
//指定选择器
startActivity(Intent.createChooser(intent, "或许是不知梦的缘故,流离之人追逐幻影 布加迪威龙跑不过的仍是时光。"));
}

//分享图片内容
public void sharedImageContentClick(View view)
{
Uri uri= Uri.parse("/storage/emulated/0/appshare.jpg");
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM, uri);
// startActivity(intent);
//指定选择器
startActivity(Intent.createChooser(intent,"分享图片到"));
}
//分享多个图片内容
public void sharedMultipleContentClick(View view)
{

Uri uri1= Uri.parse("/storage/emulated/0/pic1.jpg");
Uri uri2= Uri.parse("/storage/emulated/0/pic2.jpg");
Uri uri3= Uri.parse("/storage/emulated/0/pic3.jpg");
Uri uri4= Uri.parse("/storage/emulated/0/pic4.jpg");
ArrayList<Uri> list=new ArrayList<Uri>();
list.add(uri1);
list.add(uri2);
list.add(uri3);
list.add(uri4);
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.setType("image/*");
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,list);
// startActivity(intent);
//指定选择器
startActivity(Intent.createChooser(intent, "分享图片到"));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem item=menu.findItem(R.id.share);
ShareActionProvider sap=(ShareActionProvider) MenuItemCompat.getActionProvider(item);
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT,"同一条路,和某些人一起走,就长的离谱,和另外一些人走,就短得让人舍不得迈步子。");
sap.setShareIntent(intent);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

int id = item.getItemId();

if (id == R.id.action_settings) {
return true;
}

return super.onOptionsItemSelected(item);
}
}

menu_main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.administrator.myapplication.MainActivity">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never" />
<item
android:id="@+id/share"
android:title="share"
android:orderInCategory="200"
app:showAsAction="ifRoom"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
></item>
</menu>

activity_receiver_shared_content.xml

<?xml version="1.0" encoding="utf-8"?>
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.administrator.myapplication.ReceiverSharedContentActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="接收分享内容的组件"
android:id="@+id/content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>

ReceiverSharedContentActivity.java

package com.example.administrator.myapplication;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;

public class ReceiverSharedContentActivity extends ActionBarActivity {
private TextView textView_content;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_receiver_shared_content);
textView_content= (TextView) findViewById(R.id.content);
handleContent();
}
private void handleContent()
{
Intent intent=getIntent();
String type=intent.getType();
String action=intent.getAction();


if (Intent.ACTION_SEND.equals(action))
{
if("text/plain".equals(type))
{
String info=intent.getStringExtra(Intent.EXTRA_TEXT);
textView_content.setText(info);
}
}
}

}

清单文件:

文件接受者

<activity
android:name=".ReceiverSharedContentActivity"
android:label="@string/title_activity_receiver_shared_content">
<intent-filter>
<action android:name="android.intent.action.SEND"></action>

<category android:name="android.intent.category.DEFAULT"></category>
<data android:mimeType="text/plain"></data>
</intent-filter>
</activity>

转载于:https://my.oschina.net/xiaofeiandroid/blog/651545

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值