如何将图像保存到SD卡上按钮单击android [关闭]

2024-02-17

我在 1 XML 中使用 Imageview 和 Button,并且从 webServer 以 URL 形式检索图像并将其显示在 ImageView 上。现在,如果单击按钮(保存),我需要将该特定图像保存到 SD 卡中。这个怎么做?

注意:应保存当前图像。


首先,您需要获取位图。您已经可以将其作为对象位图,或者您可以尝试从 ImageView 获取它,例如:

    BitmapDrawable drawable = (BitmapDrawable) mImageView1.getDrawable();
    Bitmap bitmap = drawable.getBitmap();

然后你必须进入目录(aFile http://developer.android.com/reference/java/io/File.html来自 SD 卡的对象),例如:

    File sdCardDirectory = Environment.getExternalStorageDirectory();

接下来,创建用于图像存储的特定文件:

    File image = new File(sdCardDirectory, "test.png");

之后,您只需通过其方法编写位图即可compress http://developer.android.com/reference/android/graphics/Bitmap.html#compress%28android.graphics.Bitmap.CompressFormat,%20int,%20java.io.OutputStream%29例如:

    boolean success = false;

    // Encode the file as a PNG image.
    FileOutputStream outStream;
    try {

        outStream = new FileOutputStream(image);
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream); 
        /* 100 to keep full quality of the image */

        outStream.flush();
        outStream.close();
        success = true;
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

最后,如果需要,只需处理布尔结果即可。例如:

    if (success) {
        Toast.makeText(getApplicationContext(), "Image saved with success",
                Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(getApplicationContext(),
                "Error during image saving", Toast.LENGTH_LONG).show();
    }

不要忘记在清单中添加以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将图像保存到SD卡上按钮单击android [关闭] 的相关文章

  • android - 过度绘制布局允许通过 LinearLayout 进行触摸

    在下面的 UI 中 我将下面的 drabable 覆盖了整个屏幕 LinearLayout 是透明的 并允许其下方的控件可单击或可触摸 基本上我可以滚动此 LinearLayout 下面的列表以及单击控件 我如何禁用它 See attach
  • 为网络和/或持久存储序列化 Android Bundle?

    我需要序列化一个全面的应用程序 游戏 状态 以便通过网络传输或保存到磁盘并在以后检索 当然 捆绑包用于在多个用例中保存 恢复状态 因此使用它们将是理想的选择 但是 由于某种原因 Bundle 不可序列化 寻找解决方案只发现了将 Bundle
  • Android Studio磁盘空间不足如何解决?

    我随机收到此错误 并且不确定为什么 Android Studio 的磁盘空间变低 Android Studio 系统目录分区磁盘空间不足 Update 此应用程序安装在运行 10 10 1 的 Mac 上 具有 251GB 内部存储和占用
  • Android 上通过 JSCH 的基本 SSH 连接

    作为来自此的用户question https stackoverflow com questions 14323661 simple ssh connect with jsch和这个tutorial http eridem net andr
  • 如何在 Android 中创建刮刮卡?

    我需要为我在学校的期末项目创建一个 刮刮卡 应用程序 但找不到如何实现刮刮事件的方法 如何创建背景图像并在其上放置灰色矩形 所以当我刮刮这些矩形时我会看到他们下面的图片 实现必须在 Android 中 因为我还不知道如何在 Objectiv
  • 如何在 android-studio 0.3.6 中运行 Gradle 1.9?

    我只是花了一些时间尝试将现有的 android studio 项目从 gradle 1 8 迁移到 gradle 1 9 Final 昨天发布 但失败了19th Nov 我在这里阅读了大多数其他与 gradle 相关的帖子 但没有一个对我有
  • PhoneGap 是应用程序开发的好选择吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Android 中关闭 Spinner 中的下拉菜单

    在 Android 中打开和关闭微调器时 我需要为箭头图标设置动画 打开微调器时我可以旋转箭头 我只是放了一个setOnTouchListener on the Spinner 当下拉菜单关闭或隐藏时 问题就来了 因为我不知道如何在该操作上
  • 使用 POST 将数据从 Android 发送到 AppEngine Datastore

    抱歉 如果这是一个简单的问题 但我只是不知道我应该做什么 而且我认为我有点超出了我的深度 我想将数据从 Android 应用程序发送到在 Google App Engine 上运行的应用程序 数据必须从那里写入数据存储区 我的数据主要采用对
  • android studio 底部工具栏的“运行”选项卡消失了

    Android Studio 底部工具栏中曾经有一个 运行 选项卡 但该选项卡不再显示 怎么把它带回来 请检查下图以了解它消失之前的位置 Run 选项卡曾经位于 TODO 选项卡之前的红色圆圈中 查看 gt 工具窗口 gt 运行 Or us
  • Android接收通知打开和取消事件

    我从 webService 接收数据以生成自定义通知 我想追踪Intent要知道open 点击 或cancel 滑动 通知上的事件 以报告服务器进行分析 有没有听众onIntentStart or onIntentCanceled 也许是通
  • 如何在不改变的情况下将字符串转换为字节?

    我需要一个解决方案将字符串转换为字节数组而不需要像这样进行更改 Input String s Test Output String s Test byte b Test 当我使用 s getBytes 那么回复是 B 428b76b8 但我
  • BluetoothLeScanner 服务内部问题

    Update从Android 10以上我认为你需要ACCESS BACKGROUND LOCATION权限 因此 如果此代码在最新的 Android 版本上不起作用 就是针对此问题的 ACCESS BACKGROUND LOCATION 受
  • Android框架结构与MFC/Win32结构的比较?

    我为 Android 和 Windows 进行开发 使用 MFC 有时使用 win32 昨天我随意比较了这两个框架 它们显然非常非常不同 因此 Windows 开发与 Android 开发有很大不同 我想知道人们认为 Android 这样的
  • 如何在Android中隐藏应用程序标题? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想隐藏应用程序标题栏 您可以通过编程来完成 import android app Activity import android os
  • UnsupportedOperationException:特权进程中不允许使用 WebView

    我在用android sharedUserId android uid system 在我的清单中获得一些不可避免的权利 从 HDMI 输入读取安卓盒子 http eweat manufacturer globalsources com s
  • 在Android的activity中调用onResume

    在活动的过程中通过调用 this OnResume 强制 onResume 事件可以吗 或者我应该实现另一个由 OnResume 和第一个成员调用的过程 实现在您的重写中调用的另一个过程onResume 后者不打算由您调用 它是一种方便的方
  • Android apk 调试模式工作正常,但发布模式给出太多警告

    我正在尝试从 eclipse 获取签名的 APK 我有一个可调试的 apk 版本 运行良好 现在发布时 当我尝试使用 Eclipse ADT 进行编译和签名时 我收到很多警告 其中大部分是can t find superclass or i
  • 如何使用asynctask显示倒计时的进度条?

    在我的应用程序中 我希望用户按下按钮 然后等待 5 分钟 我知道这听起来很糟糕 但就这样吧 5 分钟等待期间的剩余时间应显示在进度条中 我使用带有文本视图的 CountDownTimer 来倒计时 但我的老板想要看起来更好的东西 这就是进度
  • Admob - 没有广告可显示

    你好 我尝试制作一些在 Android 手机上显示广告的示例程序 并尝试在 v2 2 的模拟器上测试它 代码中的一切似乎都很好 但调试器中的 AdListener 表示 响应消息为零或空 onFailedToReceiveAd 没有广告可显

随机推荐

  • 如何使用 CallKit 进行非 voip 呼叫?

    我想使用新的 iOS 10 CallKit 但使用默认运营商从应用程序拨打电话 是否可以 如果是这样 怎么办 目前使用 public void dial String number NSURL url new NSURL tel numbe
  • iOS:以编程方式检测iOS应用程序安装的来源(在已安装的应用程序内)[重复]

    这个问题在这里已经有答案了 我想知道是否有办法检测用户如何在 AppStore 中找到我的应用程序 例如 如果有一些参数 我可以将其连接到 AppStore 中我的应用程序的 URL 并将其获取到已安装的应用程序中 有可能http itun
  • 搜索“整个解决方案”停止工作

    不知何故 Visual Studio 搜索已停止为我工作 每当我搜索 整个解决方案 中的某些文本时 我都会得到以下结果 查找所有 我正在搜索的内容 子文件夹 查找结果 1 整个解决方案 找不到要查找的匹配文本 查找为 停止进行中 为什么突然
  • Magento 按小数排序属性而不是按字母数字排序

    所以我疯狂地在谷歌上搜索 试图找到一个解决这个问题的方法 该方法实际上可以正常工作 但却空手而归 使用类别页面上的 排序依据 功能按属性 容量 重量等 对产品进行排序时 Magento 像这样排序 因为它认为数字是文本字符串 产品A 10公
  • 无法让 EclipseLink MOXy 工作

    我是 JAXB 新手 我想使用 EclipseLink MOXy 更改默认名称空间前缀 我的 package info java 有以下代码行 javax xml bind annotation XmlSchema namespace ht
  • Chrome自动设置输入格式=数字

    我有一个 Web 应用程序 我使用 HTML5 属性 type number 将输入字段指定为数字
  • 如何将主干视图连接到流星车把模板?

    看起来像 Backbone view meteor 和 handbars 在操作 DOM 的一部分时具有重叠功能 我查看了 ToDo 应用程序 它应该使用 Backbone 但实际上 他们只使用路由器 主干视图也处理模板 但它们听起来与流星
  • 有没有办法限制“git gc”使用的内存量?

    我在共享主机上托管 git 存储库 我的存储库中必然有几个非常大的文件 每次我尝试在存储库上运行 git gc 时 我的进程都会因使用过多内存而被共享托管提供商杀死 有没有办法限制 git gc 可以消耗的内存量 我希望它可以用内存使用来换
  • VB6下载网页源码

    VB6 有没有办法将网页源下载到字符串或文本框 例如 在 VB Net 中 WebClient 类允许您使用 DownloadString google com 执行此操作 我如何在 vb6 中执行相同操作 注意 我想避免使用网络浏览器 我
  • WPF 应用程序的异常报告

    在未处理的异常期间 是否有某种方法可以捕获输出并在应用程序崩溃时显示错误报告对话框 我的想法是在后台运行一个小程序 它唯一的工作就是监听主应用程序的异常退出 然后显示 报告 对话框 用户可以选择通过电子邮件向我发送错误的输出 不太确定如何实
  • 确保给定的 docker 容器正在运行

    我现在在很多服务器上使用 docker 但有时我使用的一些容器由于负载过重而崩溃 我正在考虑添加一个 cron 来检查容器的每一分钟是否正在运行 但我没有找到任何令人满意的方法 我使用 cidfile 启动容器 该文件保存正在运行的容器的
  • 如何恢复netbeans中修改过的文件?

    我正在从事一个重要的项目 我修改了一些 php 和 css 文件并上传主题 然后 我删除了缓存 该项目不起作用 我想在第一次修改时恢复文件 有办法吗 请原谅我的英语 您没有说明您正在使用哪个版本的 Netbeans 但如果它是最新版本 您可
  • Visual Studio 2010 - 卸载 NuGet

    如何从 Visual Studio 2010 中卸载 NuGet 我尝试使用 以管理员身份运行 打开 Visual Studio 2010 但 卸载 选项不可用于从 VS2010 卸载 NuGet 扩展 通常要在VS2010中卸载NuGet
  • 解析模块说明符“vue”时出错。相对模块说明符必须以“./”、“../”或“/”开头

    我正在尝试使用代码让基本的 VueJS 应用程序运行 div div
  • 如何添加 Visual Studio 2013 Scaffolding 中使用的新 Scaffold?

    有没有办法添加新的脚手架或覆盖新的 Visual Studio 2013 脚手架中使用的脚手架功能 我在互联网上能找到的唯一文档是如何使用 CodeTemplates 文件夹覆盖 T4 模板 我想在添加 gt 新脚手架项 时向列表添加一个新
  • 如何区分方向键运动和操纵杆运动?

    我需要有两种不同的行为 一种用于方向键 另一种用于模拟操纵杆 在同一个游戏板上 问题是在onGenericMotionEvent回调 两者都有相同的信息MotionEvent我无法区分它们 d pad MotionEvent action
  • 如何以编程方式 (C#) 从 POP3 邮件中获取附件?

    是否有任何 C API 可以完成此任务 有什么建议么 我用过 n 软件 http www nsoftware com ipworks 过去取得了成功 不是免费的 但是嘿 如果它不起作用 你就可以责怪别人 换句话说 你得到公司的技术支持 他们
  • 配置Google App Engine应用程序以进行跨域

    您能否建议我们如何配置托管在 Google App Engine 上的 Python 应用程序以接受从浏览器完成的 AJAX 选项 GET POST PUT 和 DELETE 此类调用的具体细节是 XmlHTTPRequest 首先向服务器
  • 如何在 subscribe Angular 4 中返回值

    我是角度观察的新手 我有一个问题 我想在订阅方法中返回一个值 我有 以下方法 getFirebaseData idForm string observable
  • 如何将图像保存到SD卡上按钮单击android [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在 1 XML 中使用 Image