Android:与其他应用程序共享可绘制资源

2023-12-03

在我的活动中,我有一个 ImageView。我希望,当用户单击它时,会打开一个对话框(如意图对话框),显示可以打开图像的应用程序列表,然后用户可以选择一个应用程序并使用该应用程序显示图像。

我的活动代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ImageView iv = (ImageView) findViewById(R.id.imageid);
    iv.setImageResource(R.drawable.dish);
    iv.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //here is where I want a dialog that I mentioned show
                }
    });
}// end onCreate()

您无法将位图传递给意图。

据我所知,您想分享您资源中的可绘制内容。因此,首先您必须将可绘制对象转换为位图。然后你必须将位图作为文件保存到外部存储器,然后使用 Uri.fromFile(new File(pathToTheSavedPicture)) 获取该文件的 uri,并将该 uri 传递给这样的意图。

shareDrawable(this, R.drawable.dish, "myfilename");

public void shareDrawable(Context context,int resourceId,String fileName) {
    try {
        //convert drawable resource to bitmap
        Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), resourceId);

        //save bitmap to app cache folder
        File outputFile = new File(context.getCacheDir(), fileName + ".png");
        FileOutputStream outPutStream = new FileOutputStream(outputFile);
        bitmap.compress(CompressFormat.PNG, 100, outPutStream);
        outPutStream.flush();
        outPutStream.close();
        outputFile.setReadable(true, false);

        //share file
        Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
        shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(outputFile));
        shareIntent.setType("image/png");
        context.startActivity(shareIntent);
    } 
    catch (Exception e) { Toast.makeText(context, "error", Toast.LENGTH_LONG).show();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:与其他应用程序共享可绘制资源 的相关文章

  • 如何在android中实现触摸平滑图像橡皮擦?

    我已经从 API 演示中看到了finturePaint java 我想实现触摸平滑橡皮擦 通过在android中触摸移动来擦除部分图像 FingerPaint 告诉我要实现这个 mPaint setXfermode new PorterDu
  • 设置文本视图 Android 的文本颜色

    在 string xml 文件中我使用以下标签
  • gradle更新后无法找到方法(无法编译项目)

    我尝试将项目中的 gradle 版本更新为 4 1 milestone 1 以下这些说明 https developer android com studio build gradle plugin 3 0 0 migration html
  • 检查 WebView 元素时的 UiAutomator 错误

    I have recently started automation testing in android and was using UiAutomator tool for inspecting UI elements Surprisi
  • Xamarin Android Webview Javascript

    我正在尝试通过 Xamarin for Android 创建一个移动应用程序 它有一个显示网站的 WebView 问题是正常按钮会触发 但 javascript 事件不会触发 我已经启用了 Javascript 但没有运气 如何在 Andr
  • AdapterContextMenuInfo 始终为 null

    我尝试通过 android 开发文档中的书来做到这一点 this didn t create a menu i don t know why registerForContextMenu getListView setListAdapter
  • Android Q:file.mkdirs() 返回 false

    我们有一个应用程序 使用外部存储来存储一些临时文件 图像 二进制数据 该代码已经运行了几年 直到最近才发生重大变化 在 Android Q 上它不起作用 File f new File Environment getExternalStor
  • 将现有 VARCHAR 列与 Room 结合使用

    我正在尝试将现有的数据库与 Android Room 一起使用 但是 我的一个表有一个 VARCHAR 列 Room 似乎只支持 TEXT 不支持 VARCHAR 而且 sqlite 不允许修改列类型 那么 有没有办法使用Room中现有的带
  • Android 初学者:Android gridview 中的触摸事件

    我正在使用以下代码来使用 gridview 执行操作 稍作修改http developer android com resources tutorials views hello gridview html http developer a
  • Android WebView里面的ScrollView只滚动scrollview

    在我的应用程序中 我有一个 ScrollView 其中包含一些线性视图 一些文本视图和一个 Webview 然后是其他线性布局等 问题是 WebView 不滚动 Scroll 仅侦听 ScrollView 有什么建议么
  • Dialog.setTitle 不显示标题

    我正在尝试向我的对话框添加自定义标题 但是每当我运行我的应用程序时 它都不会显示标题 我创建对话框的代码是 final Dialog passwordDialog new Dialog this passwordDialog setCont
  • 以编程方式将文本颜色设置为主要 Android 文本视图

    如何设置我的文本颜色TextView to android textColorPrimary以编程方式 我已经尝试了下面的代码 但它将 textColorPrimary 和 textColorPrimary Inverse 的文本颜色始终设
  • Android 深度链接至 Instagram 应用

    Instagram 已经发布了 iOS 深层链接的 url 方案 但尚未为 Android 创建文档 有没有办法深入链接到 Android 上的 Instagram 应用程序 以转到 Instagram 应用程序中的特定位置 例如 Inst
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

    是否可以将 Android 移动设备用作 PC 上的 GSM 调制解调器 我正在 net下开发应用程序来发送 接收短信等 现在我想通过 USB 将我的 Android 设备连接到我的 PC 并将其用作 GSM 调制解调器来与其通信 这里是参
  • Android Studio 与本地网络共享上的项目文件

    这是我的设置 Android Studio 项目文件位于 Ubuntu 14 10 盒子上的共享文件夹中 尝试在 Windows 8 机器上运行 Android Studio 1 0 2 并将 U 驱动器映射到包含项目文件的 Ubuntu
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • OnLongClickListener 不工作

    我有一个ImageView 我需要使用onLongClickListener对于图像视图 当我使用这段代码时 什么也没有发生 Code gallery Gallery findViewById R id gall1 gallery setA
  • 通过电子邮件发送文本文件附件

    我正在尝试附加一个文本文件以便通过电子邮件发送 但每当我打开电子邮件应用程序时 它都会说该文件不存在 请帮助 Intent i new Intent Intent ACTION SEND i setType text plain i put
  • 发布的 Android apk 出现错误“包文件未正确签名”

    我最近将我的应用程序上传到 Android 市场 但是由于错误 下载时它拒绝运行 包文件未正确签名 我首先使用 eclipse 发布了数据包 右键单击导出 创建密钥库然后发布 但它拒绝工作 然后我下载了 keytool 和 jarsigne

随机推荐

  • Jquery 从脚本标签获取文本时出现问题?

    我有这个小 HTML 文档
  • 在 Windows 10 中批量运行 VBS 脚本时解压缩文件错误

    运行VBS时解压码在 Win 10 中执行批处理 出现以下错误 鉴于其他人之前曾报告过它可以工作 这可能是什么原因 更改目标目录或显式设置它们不会影响该错误 echo off setlocal enabledelayedexpansion
  • python:直接编辑ISO文件

    是否可以获取 ISO 文件并直接编辑其中的文件 即不解压 更改文件并重新打包 1 可以用Python来做吗 我该怎么做呢 您可以用于列出和提取 我测试了第一个 https github com barneygale iso9660 blob
  • 为 Sklearn 重塑数据

    我有一个颜色列表 initialColors u black u black u black u white u white u white u powderblue u whitesmoke u black u cornflowerblu
  • 角度 $watch |从函数返回项目

    我很想知道为什么我总是必须这样做 scope watch function return scope someData function value console log value 为了让 Angular 真正观察数据 为什么我必须这样
  • Web 配置文件中的 Windows 模拟代码错误

    我在 Web 配置文件中声明了以下部分以允许模拟 我已将该文件夹共享给另一台计算机上的网络内的公共访问
  • 使用 *args、**kwargs 和可选/默认参数调用 Python 函数

    在Python中我可以定义一个函数如下 def func kw1 None kw2 None kwargs 在这种情况下 我可以打电话func as func kw1 3 kw2 4 who knows if this will be us
  • Twitter 未捕获类型错误:未定义不是函数

    我已将 Twitter 小部件使用中遇到的错误范围缩小到事件绑定 twttr events bind tweet function event addShared or twttr events bind tweet addShared 似
  • 将 IE 浏览器与 Visual Basic 结合使用

    正在努力寻找解决这个问题的方法 从 Visual Basic 更具体地说是 Excel 中的 VBA 中 我可以使用以下命令按标题调用 Internet Explorer 窗口 AppActivate My Page Title Windo
  • vscode 扩展 - 如何记录击键

    我正在做用户测试vscode extension 对于某些大学项目 我需要获取文本编辑器中按下的按键的日志 我尝试过onDidChangeTextDocument 但这不会捕获不修改文档的击键 例如 Ctrl 或 Alt 我还尝试向活动文本
  • 使用 Chart.jscanvases 将 HTML 内容导出为 PDF

    我有一个 HTML 页面 其中包含由 Chart js 生成的大约 10 个图表 因此这些是画布元素 我希望能够将页面内容导出到 PDF 文件中 我尝试过使用jsPDF的 fromHTML函数 但它似乎不支持导出画布内容 要么是我做错了 我
  • 使用 Google Apps 脚本插入 YouTube 顶级评论

    我正在尝试使用 Google Apps 脚本创建一个程序 该程序会在某个 YouTube 频道上传时插入评论 我已经能够从频道获取最新的 YouTube 视频 ID 但是当我尝试插入评论时 它会抛出错误 解析错误 第 19 行 文件 代码
  • AngularFire2:使用 RxJS .map() 在 FirebaseListObservables 上执行“连接”

    正如另一个问题所述 我正在开发一个使用 Firebase 作为后端的 Ionic 2 应用程序 我有类别 我有产品 产品属于类别 由于它是 n 到 m 的关系 因此产品和类别存储在 firebase 中的单独节点中 我将数据结构化如下 Fi
  • ASP.net MVC - 用于 POST 操作的单独 ViewModel

    在我的 MVC 应用程序中 我有一个与此类似的视图模型 public class ComplexViewModel public ComplexDetailsViewModel Details1 get set public Complex
  • Breejs:导航属性未添加到实体中

    我已经配置了我的 WebAPI ODATA 服务 使用 5 0 0 rc1 来支持 expand 和 select 一切似乎都工作正常 但导航属性除外 元数据确实包含我的导航属性 Mandate 上的 OpenPositions 然后我的微
  • 为什么使用checked属性更改复选框时不调用onchange函数

    复选框是使用另一个按钮处理的 如果我直接单击复选框 则会触发 onchange 但是当我使用按钮更改复选框时 不会调用 onchange 即 show 方法 var checkbox document getElementById x va
  • 对数据框中组内的行进行编号

    使用与此类似的数据框 set seed 100 df lt data frame cat c rep aaa 5 rep bbb 5 rep ccc 5 val runif 15 df lt df order df cat df val d
  • 如何使用 perl 找到给定日期的下一个日期?

    我需要找到任何日期的下一个日期 use strict my entered date 2011 11 30 在上面的代码中 我想找到数据的下一个日期 该日期存储在 entered date 变量中 请分享您的解决方案 提前致谢 use Ti
  • 从子进程更改父 shell 的环境

    如果我有一个用其他语言编写的程序bash say python 如何更改环境变量或其中的当前工作目录 以便它反映在调用 shell 中 我想用它来编写一个 命令行助手 来简化常见操作 例如 一个智能cd 当我简单地在提示符中输入目录名称时
  • Android:与其他应用程序共享可绘制资源

    在我的活动中 我有一个 ImageView 我希望 当用户单击它时 会打开一个对话框 如意图对话框 显示可以打开图像的应用程序列表 然后用户可以选择一个应用程序并使用该应用程序显示图像 我的活动代码 Override protected v