自定义视图转换为位图返回黑色图像

2023-12-19

我需要创建一个自定义视图,然后将其保存为 png 文件到 SD 卡中。现在我在 SD 卡中获取黑色图像。我无法在代码中找出问题所在。谁能帮我一下。

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:background="@android:color/white"
    android:orientation="vertical" >
        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/black" />

        <TextView
            android:id="@+id/address"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/black" />
</LinearLyout>

在我的 java 文件中,我膨胀了线性布局并将数据设置为文本视图,然后我调用:

private Bitmap convertViewToBitmap(LinearLayout layout) {
    layout.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
    int width = layout.getMeasuredWidth();
    int height = layout.getMeasuredHeight();

    //Create the bitmap
    Bitmap bitmap = Bitmap.createBitmap(width, 
            height, 
            Bitmap.Config.ARGB_8888);
    //Create a canvas with the specified bitmap to draw into
    Canvas c = new Canvas(bitmap);

    //Render this view (and all of its children) to the given Canvas
    view.draw(c);
    return bitmap;
}

获取位图后,我将其保存到 SD 卡,如下所示:

private void saveBitmapTpSdCard(Bitmap bitmap, String fileName) {
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 40, bytes);

        File f = new File(Environment.getExternalStorageDirectory()
                + File.separator + getString(R.string.app_name));

        try {
            if(!f.exists()) {
                f.mkdirs();
            }
            File imageFile = new File(f, fileName + ".png");
            FileOutputStream fo = new FileOutputStream(imageFile);
            fo.write(bytes.toByteArray());
            fo.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
}

我通过添加这一行得到了它的工作:

view.layout(0, 0, width, height);

在使用 Bitmap.createBitmap 创建位图之前

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

自定义视图转换为位图返回黑色图像 的相关文章

  • 如何通过代码检测Android上的表情符号支持

    通过代码 我可以制作一个按钮 将这 3 个表情符号插入到文本中 不过 在许多手机上 当用户单击按钮时 问题是 显示为 X X X 或者更糟糕的是 它只显示三个空白空间 我想在无法正确显示表情符号的 Android 设备上禁用并隐藏我自己的内
  • 服务如何在后台运行 - Android

    今天的采访中我被问到了这个问题 什么是服务 我对此的回答是 Service 是 Android 的基本组件 它没有 UI 并且在后台运行 Service 是否在主线程上运行 不 那么它是如何在后台运行的呢 我心里一片空白 有人可以解释一下如
  • 将用户重定向到 iTunes 应用商店或 Google Play 商店?

    我正在寻找一种简单的解决方案来发布我的应用程序的一个链接 例如在 Facebook 上 如果用户使用移动设备访问它 它应该自动重定向到正确的应用程序商店 否则 用户应该被重定向到我的网站 iOS应用程序 http itunes apple
  • Android Widget ID 是否持久

    在从桌面删除该 Widget 实例之前 您从操作系统收到的用户桌面上特定 Widget 实例的 Widget ID 是否一致 我找不到任何明确说明这一点的文档 但我假设这是因为文档说您可以使用小部件 id 来存储任何实例配置信息 我想将一些
  • 如何以编程方式判断蓝牙设备是否已连接?

    我了解如何获取已配对设备的列表 但如何判断它们是否已连接 这一定是可能的 因为我看到它们列在我手机的蓝牙设备列表中 并且它说明了它们的连接状态 将蓝牙权限添加到您的AndroidManifest中
  • AIRPLANE_MODE 的广播接收器无法与 SDK 26 一起使用

    通常 我使用简单的代码来放置Toast当用户改变AIRPLANE MODE 并且它可以使用targetSdkVersion 25 我的 AirPlaneModeReceiver public class AirPlaneModeReceiv
  • 如何使用具有三种布局的视图翻转器?

    我目前正在使用ViewFlipper我的主要活动有两种不同的布局 我想使用第三种布局 但我只能找到showNext and showPrevious 命令 有人可以告诉我如何使用来实现第三种布局吗ViewFlipper 为您制作了一个示例
  • Android 在 Windowmanager 中调整视图大小

    这是我的代码 menubuttonClosed li inflate R layout menu button null menubutton ImageButton menubuttonClosed findViewById R id m
  • Android 音乐播放器应用程序:如何为服务中运行的媒体播放器设置完整的侦听器?

    我正在编写一个音乐播放器应用程序 我在服务中有 MediaPlayer 对象 问题是 我不知道如何从服务更新用户界面 例如 我想更新当前歌曲的剩余时间 但是 因为 MediaPlayer 正在服务 我无法设置 MediaPlayer 对象的
  • Android Studio APK META-INF/BCKEY.DSA 中复制的重复文件

    我的代码构建得很好 但是当我尝试在调试中运行它时 出现以下错误 Error Execution failed for task app transformResourcesWithMergeJavaResForDebug com andro
  • 旋转 Google 地图中的两层标记图标

    在我的应用程序中 我向地图添加了一定数量的标记 如下所示 private fun addMarker googleMap GoogleMap location Location val options MarkerOptions optio
  • 通过配置更改保留 CoroutineScope 的干净方法,无需 ViewModel

    我知道建议是在我们的 Activity 中使用 ViewModel 这样我们就可以使用它viewModelScope 由于 ViewModel 的寿命比 Activity 的寿命长 因此我们不必取消以下作业activity onDestro
  • Fresco:滚动 RecyclerView 后图像消失

    我有一个 Horizo ntal RecyclerView 每个项目都有一个使用 Facebook Fresco 图像库加载到其中的图像 然而 虽然正确的图像最初是在屏幕上滚动一点时加载的 但当 RecyclerView 进一步滚动时 它就
  • 使用 twitter API 1.1 在 Android 应用程序中显示 twitter feed

    基本上我想展示这个提要 https en twitter com epl live https en twitter com epl live在我的应用程序中 由于 twitter 更改了其 api 1 1 每个调用都必须经过授权 我发现的
  • DialogFragment 关闭事件

    我需要处理 DialogFragment 的结尾 在调用 dismiss 之后 例如 我会在关闭后 包含 片段的活动内显示一个 toast 我该如何处理该事件 覆盖onDismiss 在你的DialogFragment中 或者使用setOn
  • Android:选择 EditField 上焦点上的所有文本

    我试图让 Android 在获得焦点时选择 EditText 字段中的所有文本 我在布局中使用此属性 在两个字段上 android selectAllOnFocus true 我不确定这是否相关 但为了将光标移动到第一个可编辑字段 前面 还
  • JavaScript 点击事件在 Android 4.0.4 默认浏览器上的 Samsung Galaxy SIII 上不起作用

    我在 Android 4 0 4 上使用 Samsung Galaxy SIII 的默认浏览器时遇到了最奇怪的问题 对于以下页面 单击链接将不会触发 JavaScript 处理程序 从其中一个 div 的内容中删除单个 a 字母使它们再次工
  • 在 VideoView 开始播放之前,TextView 不会显示

    我编写了一个android应用程序 它有两个视图 TextView上方的VideoView 位于ScrollView内部 我遇到了一个问题 直到VideoView开始播放视频 TextView才显示 并且我有一个黑屏 这可能需要很长一段时间
  • 致命异常:GoogleApiHandler

    在我的项目中 我使用货币化服务 Vungle AppLovin 当我尝试加载广告时 出现此异常 E AndroidRuntime 致命异常 GoogleApiHandler 进程 kz ikar PID 3673 java lang NoS
  • FCM 主题是否适合更多用户?

    我对使用主题消息有点困惑 我的场景是根据通知触发一些作业 请帮助我更多地了解这一点 如果我们正在处理大量用户 则可以使用 FCM 主题向用户发送通知 我们可以只使用数据消息和主题消息吗 使用主题发送的消息是否保证送达 我在 FCM 文档中看

随机推荐

  • 如何从 C++ COM 迁移到 C++CLI

    我有一个通过 COM 公开内容的 C DLL 我想将其转换为公开托管接口的 C CLI 理想情况下 我只需添加 CLI 并一一转换接口即可 到目前为止我还没有取得任何成功 所以我正在寻找具体的策略 更多详情 很久以前 我创建了一个使用 CO
  • 世界地图与 ggmap

    我正在使用 ggmap 并希望有一张以澳大利亚为中心的世界地图 我可以轻松地绘制地理编码点 与其他一些地图包相比 ggmap 似乎更容易使用 然而 当我使用下面的代码浏览地图时 它会出错 gc lt geocode australia ce
  • Random ArrayIndexOutOfBoundsException,使用流按值对 Map 元素进行排序

    最近几天 我开始 玩 一些 Java 8 功能 例如流 我研究了一些文档和几个示例 在我的应用程序中 我有一个 Map 我需要获取具有最高值的三个元素 浮动部分 我尝试对我的代码进行不同的修改 其中一些解决方案还 按值对 Map 进行排序
  • Membership.ValidateUser 在 IIS 上始终返回 false

    Membership ValidateUser 方法适用于开发服务器 iis express 和 cassini 但在我的 IIS 上 它作为我的开发机器上的应用程序发布 它总是返回false 即使用户被批准 也不会被锁定 并且用户名和密码
  • 在 ACE 编辑器中应用Deltas

    我正在尝试在 Ace 编辑器中保存更改操作 然后回放它们 下面有一些伪代码 要点是 applyDeltas API 似乎没有为我的编辑器做任何事情 我绑定到编辑器更改事件 将更改增量推送到数组 并尝试稍后播放它 当我运行下面的代码时 我没有
  • data:text/html 处的网页对于某些 WebView text/html 内容字符串不可用

    我正在使用以下 Java 代码创建一些用于显示内容的 HTML public String htmlFromArrayList ArrayList
  • 如何写入 BitLocker 加密卷的物理扇区?

    I call CreateFile 我打开 PhysicalDrive0 然后我读取了 BitLocker 加密卷的扇区 一切正常 通过这种方式 我可以创建使用 BitLocker 加密的卷的物理 加密 扇区的备份副本 然后 我打电话Cre
  • Java - 使用流+ lambda 的多个集合的交集

    我有以下函数用于统一多个集合 包括重复元素 public static
  • oracle中的varchar2排序是如何工作的?

    我正在按 Varchar2 列对 Oracle SQL 查询进行排序 但是当我得到结果时 我无法正确理解顺序 这是逻辑顺序 第一个小写字母 数字 符号 在这里 我附上其中一项测试的结果排序 select FieldToOrder from
  • 如何从同一项目中的另一个 Kubernetes 集群调用 Kubernetes 集群公开的服务

    我有两个服务 集群 K1 中的 S1 和集群 K2 中的 S2 他们有不同的硬件要求 服务 S1 需要与 S2 通信 出于安全原因 我不想公开 S2 的公共 IP 在 K2 集群的计算实例上使用 NodePorts 和网络负载平衡会降低灵活
  • 如何调整 PyQt4 中 QMenuBar 的大小以适应 4K 显示

    我需要用 Python 编写一个带有用户界面的应用程序 我决定使用 PyQt4 来制作 GUI 它包含在 Python 的 Anaconda 发行版中 让 GUI 在 4K 显示器上流畅运行并非易事 默认情况下 大多数组件都太小 有些组件
  • 无法安装 vim 表格插件

    没有安装说明tabular https github com godlygeek tabular插入 我尝试将文件复制到正确的文件夹中 或者放入 vim bundle为了让病原体处理它 在这两种情况下 当我加载 vim 时 我都会收到以下错
  • HTML img src 位于根文件夹之外

    我试图引用源文件夹外部的图像文件 目前的结构是 Images img1 png My Source Folder Page 1 index html 从index html 文件中 我想引用img1 png 文件 我尝试了以下代码 img
  • IDLE 的子进程未建立连接。 IDLE 无法启动或个人防火墙软件阻止连接

    我尝试卸载它并搜索其他答案 它们都没有起作用 IDLE 打开 但我无法运行我编写的任何内容 在 Windows 10 中 1 输入 受控文件夹访问 2 选择 允许应用程序通过受控文件夹访问 对 UAC 选择 是 3 单击 添加允许的应用程序
  • java.lang.Math.PI 等于 GCC 的 M_PI 吗?

    我正在用 Java 和 C C 编写一些参考算法 其中一些算法使用 我希望每个算法的两种实现都能产生完全相同的结果 没有不同的舍入 迄今为止一直有效的一种方法是使用自定义的pi常量 在两种语言中完全相同 例如 3 14159 然而 当 Ja
  • 如何在 matplotlib 中创建具有垂直阴影的绘图[重复]

    这个问题在这里已经有答案了 I want to be able to replicate the following plot x 轴上有时间 y 轴上有 GDP GDP 线只是每日时间历史 无论其值如何 而衰退数据具有以下结构 从 1 1
  • ngrx 影响错误处理

    我有一个关于 ngrx效果的非常基本的问题 如何忽略效果执行期间发生的错误 使其不影响将来的效果执行 我的情况如下 我有一个动作 登录 和一个监听该动作的效果 如果此效果中发生错误 我想忽略它 当发生此错误后第二次调度 LOGIN 时 应再
  • MJML - 模板插值、动态数据、上下文

    经过大量搜索后 我很难找到如何 MJML https mjml io 处理动态数据和模板插值 我期待类似的事情 import mjml2html from mjml const context message Hello World con
  • 在 Flutter 中使用新版本更新(本机)Android 应用程序,同时保留数据库

    我有一个用java编写的android小应用程序 我正在使用flutter重写 是否可以通过保持 SQLite 数据库结构 包括所有数据 完整来过渡到新版本 我进行了测试 虽然我能够覆盖应用程序 但升级后数据丢失了 如果有人需要它 我可以从
  • 自定义视图转换为位图返回黑色图像

    我需要创建一个自定义视图 然后将其保存为 png 文件到 SD 卡中 现在我在 SD 卡中获取黑色图像 我无法在代码中找出问题所在 谁能帮我一下 布局文件