Android实现分享一个广告页面给好友

Android应用中的系统分享功能实现与优化 在现代移动应用开发中,内容分享是一个常见的需求。Android系统原生提供的分享功能使得用户能够轻松地将应用内的内容分享到其他应用。这种方式不仅提高了用户体验,还让开发者能够以最小的努力实现复杂的功能。本章将概述Android自带分享功能的基础知识。我们会讨论Android分享功能的工作原理以及如何通过系统级的分享对话框,将内容传递给其他应用。这对于希望在应用中实现分享功能的开发者来说是一个重要的入门知识。分享功能的关键在于使用Intent对象,它扮演了不同组件间通信的桥梁。 阅读详情

    以往APP分享的都是将下载链接以文本方式分享给好友,但是我们如果想要添加一些广告元素进去,文本就难以抓住人的眼球。最近我就接了这样一个需求,把分享界面以图片的形式分享给好友。如果你恰好也有类似的需求,那么这篇文章可以帮到你!

效果图:

    开始我想是否可以借助系统的截屏功能,然后对图片进行裁剪。把手机的状态栏部分截取掉。但是我希望去掉我布局中的一些控件,比如分享按钮。

我的分享界面:

后来就有了这样一个思路:用ViewGroup生成一张图片,具体的实现如下:

        1.在XML布局中,把相关视图用一个ViewGroup包裹

        2.将ViewGroup转化为Bitmap

    /**把ViewGroup转化为一个bitmap*/
    public static Bitmap convertViewToBitmap(View view){
        view.setDrawingCacheEnabled(true);
        view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
                View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
        view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
        view.buildDrawingCache();
        Bitmap bitmap = view.getDrawingCache();
        return bitmap;
    }

        3.将Bitmap存为图片文件

   /**保存图片到本地*/
    private void savaBitmap() {
        File appDir = new File(Environment.getExternalStorageDirectory(), "erweima");
        if (!appDir.exists()) {
            appDir.mkdir();
        }
        fileName = System.currentTimeMillis() + ".jpg";
        file = new File(appDir, fileName);
        try {
            FileOutputStream fos = new FileOutputStream(file);
            llBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
            fos.flush();
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

        4. 将图片文件分享给好友

   /** android 自带分享图片功能*/
    private void share() {
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("image/*");
        intent.putExtra(Intent.EXTRA_SUBJECT, "分享");
        intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(Intent.createChooser(intent, ShareActivity.this.getTitle()));
        ShareActivity.this.overridePendingTransition(R.anim.share_in_from_bottom, 0);
    }

最后是我分享出去的图片的效果:




自定义分享dialog界面 androidAPP自定义分享dialog 立即下载

相关推荐

FreeCAD地下管道自动化建模实战:Python脚本从入门到导出OBJ

本文详细介绍了如何利用FreeCAD的Python API实现地下管道的自动化建模,从数据处理到模型导出OBJ格式的全流程。通过实战案例和代码示例,展示了圆形和矩形截面管道的创建方法,以及法兰连接等特殊处理技巧,大幅提升工程设计效率。

ff678的博客 248

Android APP分享功能实现

Share SDK,第三方授权登录 分享 获取资料

QZC78的博客 2387

PCIe设备内存访问实战:从ioremap到DMA映射的完整流程解析

本文深入解析了PCIe设备内存访问的完整流程,涵盖从CPU通过ioremap访问设备寄存器,到设备通过DMA映射高效读写主机内存的核心机制。详细探讨了虚拟地址、物理地址与总线地址的转换关系,对比了一致性与流式DMA映射的适用场景及同步要点,并阐述了IOMMU在安全与效率中的作用,为驱动开发者提供了实战代码与关键陷阱分析。

weixin_29201933的博客 505

Android分享界面制作(底部滑出动画)

分享界面 效果图: 实现代码: 实现分享界面的代码(用到了两个自定义控件) package cn.zszh.customs.widget; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.Drawable; import androi

yangxun0727l的博客 3238

11-4 AEB 算法原理及系统组成

本专题旨在探讨如何利用仿真软件开发自动紧急制动系统AEB,主要通过整理开发流程,实现从需求到验证的全流程掌握,为后续开发提供支持;同时,研究了如何在汽车自动驾驶仿真工具中开发自己的算法,并解决了从ISO、E-CNAP、GB/T以及交通法规等提炼出功能需求的问题,以快速实现原型模型的开发。本专题重点讲解了AEB的工作原理、系统/软件架构和需求、算法模型及实现、CCRs/CCRb/CCRm建模与仿真、VRU-AEB-B/P/M建模与仿真,同时还提供了测试用例,期待将AEB算法成功地产品化。

AIgraphX 8551

benders分解算法 逻辑思路整理(加星)

一般我们经常可以看到的是经典的benders,此处我也结合经典的benders梳理下思路。

sinat_41348401的博客 7985

android分享功能以及界面开发,Android实现合并生成分享图片功能

Android实现合并生成分享图片功能发布时间:2020-08-23 11:43:07来源:脚本之家阅读:159作者:Chaek有时候分享功能都是很需要分享一个当前屏幕的界面的截图因,以前做校内APP的时候用到过,拿出来分享分享, 用以前写过的自定义课表软件。Android 自定义View课程表表格看到的是图片只显示到11节处,下面的没有显示到 所以用到的 ScrollView因此截图节截取Scr...

weixin_31546795的博客 425

ESP8266红外控制美的空调:从协议解析到Home Assistant集成

红外遥控技术作为一种经典的非接触式控制方式,其原理是通过红外发光二极管发射经过特定频率调制的光信号来传递指令。在物联网和智能家居领域,利用微控制器如ESP8266模拟红外信号,成为将传统家电接入智能生态系统的关键技术。这项技术通过精准解析和生成符合设备厂商私有协议的红外编码,实现了对空调、电视等设备的远程与自动化控制,具有很高的实用价值。本文聚焦于美的空调的红外协议,深入探讨了其脉冲宽度调制(PWM)和全量式编码的特点,并提供了基于ESP8266的完整解决方案,包括硬件连接、库函数API详解以及如何将其无缝

weixin_30718391的博客 400

Android 一键分享功能简单实现

最近小编做了一些分享功能,需要把一些文字、图片、文件等分享出去。于是总结了一些代码,做了个助手类,实现了上述功能,以供看客老爷们拿去参考。废话不多说,直接上代码: import java.io.File; import java.util.ArrayList; import java.util.List; import android.content.Context; import a...

小轩腾空的专栏 1170

软件自动化测试脚本如何编写,编写自动化测试脚本的几点注意事项

我们需要自动化测试脚本的原因:1、验收测试是一项非常复杂和费力的被用来确保软件质量的环节。它的目的就是使软件能得到充分运行并且能使其符合原始需求。2、测试的目的无非就是满足了两个结果:测试通过或测试不通过。为了能实现每个测试结果,必须要明确每个测试用例。并且对于整个系统而言在合同中必须定义测试用例的失败标准,而且这个失败标准数必须是可接受的。3、测试用例的通过条件必须有一个清晰的标准,标准可以被定...

weixin_39575775的博客 2251

海康VisionMaster与西门子PLC1200进行S7通信

通信是连通算法平台和外部设备的重要渠道,在海康VisionMaster算法平台中既支持外部数据的读入也支持数据的写出,当通信构建起来以后既可以把软件处理结果发送给外界,又可以通过外界发送字符来触发相机拍照或者软件运行。 本文以西门子PLC1200作为外部设备为例,讲解海康VisionMaster与西门子PLC1200进行S7通信。......

haier123888的博客 1万+

Android中实现一个简单的分享功能

使用Android 4.0 (API Level 14)中提供的 ActionProvider可以在你的App的ActionBar上增加一个带有外观显示及分享功能的分享按钮。当一个ActionProvider被加入到你的ActionBar的菜单中,他就具备了相应的外观及功能。在使用ShareActionProvider的情况下,你只需要提供一个要分享的Intent,它就会为你把剩下的事情做好。* S

朝花夕拾 764

Spring AI Alibaba实战训练营-14基于A2A协议智能体应用开发指南

本文介绍了基于A2A协议的智能体应用开发流程,主要包括客户端和服务端两个模块的实现。关键技术包括A2A通信协议、Nacos服务发现、Spring AI Alibaba框架和DashScope通义千问API。开发步骤涵盖环境准备(JDK17、Maven、Nacos)、项目创建、依赖配置(重点引入spring-ai-alibaba相关组件)以及Nacos和DashScope的核心配置。整个系统架构采用客户端通过Nacos发现服务端Agent,再调用阿里云AI服务的模式,实现了AI能力的解耦与复用。

program哲学 504

码匠编程:H5到底是指什么? 一文给你梳理清楚

很多 UI 设计师、视觉设计师在初入职场,都会遇到需要设计 H5 的需求,但大多数人其实并不了解 H5 是什么,所以写一篇详细的扫盲文章,帮助大家对它有完整的认识。 做 UI 和移动端开发的都该知道,国内对专业术语的命名是很不负责的,没有统一规范,非常的写意。H5 也是如此,它也是一个偏离了具有明确指向性的“术语”。 在今天,H5 有广义和狭义两种,下面我们分别对它进行解释。 广义的解释 广义上,H5 指的是 HTML5,即网页使用的 HTML 代码 —— 第五代超文本标记语言。 早在 2004 年 H.

make前端 8893

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

android 首页广告位,Android 使用 ViewPager循环广告位的实现

如何实现循环播放现在网上实现循环播放都是在adapter的getCount()方法返回一个较大的值并且instantiateItem(ViewGroup container,int position)中通过取余(position/datas.size())的方式,让ViewPager不断的播放下去。这里我们通过修改数据源和设置currentItem的方式实现。修改数据源:final List da...

weixin_34189259的博客 193

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

android webview 深度链接,Deeplink(深度链接)是什么?如何做到高效场景还原

移动互联网时代,信息的分享传播无疑是 App 引流增长的关键,与其花费大量精力和成本找渠道、硬推广,不如从细节下手,用最快最简便的方法实现 Deeplink(深度链接)技术,打破信息孤岛、缩短分享路径、优化用户体验,最终提高流量转化率和留存率。什么是 DeepLink(深度链接)技术如果把 App 看成网站,那么 DeepLink 就是网站中的深入页面,比如商品购物页面、活动促销页面。简单理解,就...

weixin_35014204的博客 1592

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java 跳转deeplink链接_Deeplink(深度链接)唤起App,怎样实现无缝跳转

Deeplink(深度链接)唤起App,怎样实现无缝跳转发布时间:2020-02-14 11:10:42来源:51CTO阅读:1753作者:蛋糕侠移动互联网时代,信息的分享传播无疑是 App 引流增长的关键,与其花费大量精力和成本找渠道、硬推广,不如从细节下手,用最快最简便的方法实现 Deeplink(深度链接)技术,打破信息孤岛、缩短分享路径、优化用户体验,最终提高流量转化率和留存率。什么是 D...

weixin_28812943的博客 742

Deeplink(深度链接)拉起App,我是这样做到的

移动互联网时代,信息的分享传播无疑是 App 引流增长的关键,与其花费大量精力和成本找渠道、硬推广,不如从细节下手,用最快最简便的方法实现 Deeplink(深度链接)技术,打破信息孤岛、缩短分享路径、优化用户体验,最终提高流量转化率和留存率。 什么是 DeepLink(深度链接)技术 如果把 App 看成网站,那么 DeepLink 就是网站中的深入页面,比如商品购物页面、活动促销页面。简单理解...

weixin_43652781的博客 2万+

App引流增长技术:Deeplink(深度链接)技术

移动互联网时代,信息的分享传播无疑是App引流增长的关键,与其花费大量精力和成本找渠道、硬推广,不如从细节下手,用最快最简便的方法实现Deeplink(深度链接)技术,打破信息孤岛、缩短分享路径、优化用户体验,最终提高流量转化率和留存率。 什么是DeepLink(深度链接)技术 如果把App看成网站,那么DeepLink就是网站中的深入页面,比如商品购物页面、活动促销页面。简单...

weixin_33892359的博客 849

Android:分享功能实现(超简单)

Intent intent=new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, “分享”); intent.putExtra(Intent.EXTRA_TEXT, "I would like to sh

小小小石头的专栏 699

Android h5(分享页面)唤醒app,并跳转指定界面

现在基本所有h5流量都会往自家app导入流量。所以我们常见会发现浏览器打开网页、微信分享文章扥等都有打开app的按钮 1、app代码 <activity android:name=".AwakenActivity" <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.categ..

qq_21467035的博客 6684

Android 安卓中共享页面的几种方式

安卓中共享页面

ftm_csdn的博客 570

H5实现android、ios分享页面打开特定app的交互

【代码】react框架H5与android、ios分享页面打开特定app的交互。

WANGLING0108的博客 3588

Android分享到支付宝APP(完整版-包括网页分享,文本信息分享,图片分享)

Android分享到支付宝APP(完整版),带skd安装教程

土拨鼠博客 1714

Android 调用系统的分享界面,进行文件分享

//分享文字 public void shareText(View view) { Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.putExtra(Intent.EXTRA_TEXT, "te...

HAPP NEW JAVA 4603

Android PopupWindow做的分享界面

package com.tq.mbaexam.view; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import android.content.Context; import android.g...

weixin_34129145的博客 189
上一篇: IM基础概念和原理
下一篇: Android中Button的默认高度问题
__Chen
博客等级 码龄10年 9粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值