文档章节

在ActionBar显示ShareActionProvider分享文本,点击可以打开进行分享(19)

f
 flyqilong
发布于 2016/02/27 22:01
字数 614
阅读 18
收藏 0
点赞 1
评论 0
//菜单menu文件夹下创建分享提供者文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/share_privder"
        android:actionProviderClass="android.widget.ShareActionProvider"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:title=""/>

</menu>
// android:actionProviderClass="android.widget.ShareActionProvider"这个属相一定要设置对
public class MainActivity extends Activity {
	private ShareActionProvider provider;
	private ImageView imageview;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		this.imageview = (ImageView) this.findViewById(R.id.share_image);
	}

	// 点击按钮
	public void selectImage(View view) {
		// 点击从图库选择图片
		Intent intent = new Intent();
		// setAction(Intent.ACTION_PICK)另一种设置方式
		intent.setAction(Intent.ACTION_GET_CONTENT);// 注意不要用Intentnew出的对象来设置
		intent.setType("image/*");
		// 打开图库的意图
		startActivityForResult(intent, 200);// 带返回值的,选择图片后返回

	}

	// 图片返回处理方法
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		if (requestCode == 200 && resultCode == Activity.RESULT_OK) {
			Uri uri = data.getData();// uri通过intent传回来的
			// 读取图片显示,通过ContentResolver内容解析器,将uri放进去
			ContentResolver resolver = getContentResolver();
			try {
				InputStream is = resolver.openInputStream(uri);
				// 将流转换为位图
				Bitmap bitmap = BitmapFactory.decodeStream(is);
				imageview.setImageBitmap(bitmap);
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			}
			// 设置分享的数据和类型
			Intent intentImg = new Intent();
			intentImg.setAction(Intent.ACTION_SEND);
			intentImg.setType("image/*");
			intentImg.putExtra(Intent.EXTRA_STREAM, uri);
			//要连通uri,没有uri不懂怎么连通性,即先点中图片按钮再设置数据类型
			provider.setShareIntent(intentImg);

		}

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.share, menu);
		// 分享文本
		shareText(menu);
		// 分享图片
		shareImage(menu);
		return super.onCreateOptionsMenu(menu);
	}

	// 分享图片的方法
	public void shareImage(Menu menu) {
		// 分享图片还是要找到那个分享提供者类
		MenuItem shareItem = menu.findItem(R.id.share_privder);
		// 使用系统提供的一个分享类
		provider = (ShareActionProvider) shareItem.getActionProvider();
	}

	// 分享文本的方法
	public void shareText(Menu menu) {
		MenuItem shareItem = menu.findItem(R.id.share_privder);
		// 使用系统提供的一个分享类
		provider = (ShareActionProvider) shareItem.getActionProvider();
		Intent shareintent = new Intent();
		// 发送出去的类别
		shareintent.setAction(Intent.ACTION_SEND);// 注意不要用Intentnew出的对象来设置
		// 指定发送的数据的类型
		shareintent.setType("text/plain");
		shareintent.putExtra(Intent.EXTRA_TEXT, "分享的文本信息");
		// 把intent放入到分享提供这种,有一个列表出来给你选择,然后将信息放入到你选择打开的应用中
		provider.setShareIntent(shareintent);

	}
}
//布局文件
<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:gravity="center" >

    <TextView
        android:id="@+id/share_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="分享文本" />

    <ImageView
        android:id="@+id/share_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/share_text"
        android:layout_below="@+id/share_text"
        android:layout_marginTop="20dp"
        android:src="@drawable/ic_launcher"
        android:onClick="selectImage"
        android:scaleType="centerInside" />

</RelativeLayout>


© 著作权归作者所有

共有 人打赏支持
f
粉丝 3
博文 93
码字总数 53900
作品 0
Android工程师
ActionBar中ShareActionProvider简单使用

//功能:点击中间机器人图标打开图库 然后选中要分享的图片 //在点击选择菜单分享图标 分享到需要分享的地方 效果示例图: 1、选择菜单 sharemenu.xml 布局 代码 <?xml version="1.0" encodi...

初来小修 ⋅ 2016/02/03 ⋅ 0

Android UI开发第二十四篇——Action Bar

Android UI开发第二十四篇——Action Bar 标签: ActionBarandroidfragmentmenu 2012-10-31 16:11 143916人阅读 评论(29) 收藏 举报 分类: 上图中: logo title icon 目录(?)[+] Action bar...

微笑的江豚 ⋅ 2016/04/07 ⋅ 0

Exception: This is not supported, use MenuItemCompat.getActionProvider()的处理

今天在学习在ActionBar上添加分享功能时,按照文档的写法,报了一个错误 下面是我抄来的代码: menu_main.xml: MainActivity.java: 如果这样直接运行起来,会报错,报错内容如下: MainActivi...

neumeng ⋅ 2016/09/08 ⋅ 0

Android Action Bar

http://blog.csdn.net/yuxlong2010/article/details/9299507 Action Bar讲的够详细啦! 关于ShareActionProvider: 1。分享文字:http://www.tuicool.com/articles/mAR7Zb Intent intent = ......

当空皓月 ⋅ 2014/11/04 ⋅ 0

Android ActionBar详解

关于ActionBar,相信大家并不陌生,但是真正能够熟练使用的也不是很多,这篇文章主要为大家详细介绍ActionBar的相关知识,ActionBar是在Android3.0中引入的概念,所以在2.x系统中使用ActionBar...

恰同学少年 ⋅ 2015/08/03 ⋅ 0

DynamicShareActionProvider

开源代码 DynamicShareActionProvider 用于解决Google Android 4.0 增加的 ShareActionProvider 分享API无法灵活定制的问题,使用它可以实现分享动态创建的内容。 如图所示: 此外还有以下功...

红薯 ⋅ 2013/12/30 ⋅ 0

Android开发人员不得不收集的代码

dp与px转换 sp与px转换 各种单位转换 在onCreate()即可强行获取View的尺寸 ListView中提前测量View尺寸 设备相关 获取设备MAC地址 获取设备厂商,如Xiaomi 获取设备型号,如MI2SC 获取设备S...

Jamsm ⋅ 2016/08/04 ⋅ 0

ActionBar 中导航菜单、内容提供中和下拉菜单

一、Action View Action视图是一个在ActionBar上作为Action Button 的替代品。要声明一个视图,需要使用 actionLayout 和 actionViewClass 两个属性中的任意一个来分别定义视图的布局资源和布...

一哥No ⋅ 2015/10/24 ⋅ 0

ActionBar / Menu

官网参考:ActionBar, Menus 首先Menus包括: Option Menu, Contextual Menu, Popup Menu; 在Android2.3和Android 3.0 ,当创业Option Menu和Contextual Menu的形态是不一样的,在Android3.......

okker ⋅ 2014/03/20 ⋅ 0

csumissu/FakeWeChat

FakeWeChat 仿微信 界面高仿微信,数据来自新浪微博API。 仅供大家学习交流,不得用于商业用途。 项目简述 项目采用MVP-Rxjava设计模式,完全Material Design风格,实现了微信的部分界面功能...

csumissu ⋅ 2016/07/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 21分钟前 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

小致dad ⋅ 33分钟前 ⋅ 0

Python 数电表格格式化 xlutils xlwt xlrd的使用

需要安装 xlutils xlwt xlrd 格式化前 格式化后 代码 先copy读取的表格,然后按照一定的规则修改,将昵称中的学号提取出来替换昵称即可 from xlrd import open_workbookfrom xlutils.copy ...

阿豪boy ⋅ 今天 ⋅ 0

面试题:使用rand5()生成rand7()

前言 读研究生这3 年,思维与本科相比变化挺大的,这几年除了看论文、设计方案,更重要的是学会注重先思考、再实现,感觉更加成熟吧,不再像个小P孩,人年轻时总会心高气傲。有1 道面试题:给...

初雪之音 ⋅ 今天 ⋅ 0

Docker Toolbox Looks like something went wrong

Docker Toolbox 重新安装后提示错误:Looks like something went wrong in step ´Checking if machine default exists´ 控制面板-->程序与应用-->启用或关闭windows功能:找到Hyper-V,如果处......

随你疯 ⋅ 今天 ⋅ 0

Guacamole 远程桌面

本文将Apache的guacamole服务的部署和应用,http://guacamole.apache.org/doc/gug/ 该链接下有全部相关知识的英文文档,如果水平ok,可以去这里仔细查看。 一、简介 Apache Guacamole 是无客...

千里明月 ⋅ 今天 ⋅ 0

nagios 安装

Nagios简介:监控网络并排除网络故障的工具:nagios,Ntop,OpenVAS,OCS,OSSIM等开源监控工具。 可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和h...

寰宇01 ⋅ 今天 ⋅ 0

AngularDart注意事项

默认情况下创建Dart项目应出现以下列表: 有时会因为不知明的原因导致列表项缺失: 此时可以通过以下步骤解决: 1.创建项目涉及到的包:stagehand 2.执行pub global activate stagehand或pub...

scooplol ⋅ 今天 ⋅ 0

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部