从视图创建位图使视图消失,如何获取视图画布?

2024-01-17

我发现了两种从视图创建位图的方法。但一旦我这样做了,视图就会消失,我就不能再使用它了。生成位图后如何重绘视图?

1st:

public static Bitmap getBitmapFromView(View view) {
Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(returnedBitmap);
Drawable bgDrawable =view.getBackground();
if (bgDrawable!=null) 
    bgDrawable.draw(canvas);
else 
    canvas.drawColor(Color.WHITE);
view.draw(canvas);
return returnedBitmap;
}

2nd:

Bitmap viewCapture = null;

theViewYouWantToCapture.setDrawingCacheEnabled(true);

viewCapture = Bitmap.createBitmap(theViewYouWantToCapture.getDrawingCache());

theViewYouWantToCapture.setDrawingCacheEnabled(false);

EDIT

所以,我想我明白第一个发生了什么,我们基本上是从原始画布中删除视图并将其绘制在与该位图相关的其他位置。我们可以以某种方式存储原始画布,然后设置要在那里重绘的视图吗?


抱歉,我对此了解不多。但我使用以下代码:

public Bitmap getBitmapFromView(View view, int width, int height) {
    Bitmap returnedBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(returnedBitmap);
    Drawable bgDrawable = view.getBackground();
    if (view==mainPage.boardView) { 
        canvas.drawColor(BoardView.BOARD_BG_COLOR);
    } else if (bgDrawable!=null) { 
        bgDrawable.draw(canvas);
    } else { 
        canvas.drawColor(Color.WHITE);
    }
    view.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
    view.layout(0, 0, width, height); 
    view.draw(canvas);
    return returnedBitmap;
}

这与你的非常相似,我怀疑我们是从同一个地方复制和编辑的。

我对视图从原始绘图树中消失没有任何问题。我的被​​称为 ViewGroups 而不是普通视图。

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

从视图创建位图使视图消失,如何获取视图画布? 的相关文章

随机推荐

  • 在 python seaborn 图中创建多列图例

    我在用seaborn distplot python3 并希望每个系列有 2 个标签 我尝试了一种黑客字符串格式方法 如下所示 bigkey and bigcount are longest string lengths of my key
  • 使用单个标识符 REST 方式嵌套资源路由

    在我的 Rails 应用程序中 两个实体之间有一个相当标准的 has many 关系 AFoo有零个或多个Bars a Bar恰好属于一个Foo Foo 和 Bar 均由单个整数 ID 值标识 这些值在其各自的所有实例中都是唯一的 Bar
  • iOS 保持状态栏为纵向

    我有一个使用接近传感器的应用程序 但接近传感器在横向模式下不起作用 我听说如果你将状态栏保持在纵向模式 传感器就会工作 我已经尝试过 但没有成功 UIApplication sharedApplication setStatusBarOri
  • SSRS 在组内交替行颜色

    我在获取替代行颜色时遇到一些问题 我尝试了不同的表达方式 这是我已经完成的最接近的表达方式 IIF RunningValue Fields agent name Value CountDistinct Nothing MOD 2 1 Gai
  • CHM 格式替代品?

    Microsoft CHM 格式非常有用 因为它提供了以下功能 带有树视图的目录 指数 索引搜索 基于 HTML 源 但这种格式已经过时并且有很多缺点 存在安全问题 允许执行 JavaScript 代码 不知道新的 HTML 格式 没有记录
  • 反应过渡组出现过渡无法正常工作

    我在用着反应过渡基团 http reactcommunity org react transition group transition渲染组件时处理动画 CSSTransition 我想要一个组件的简单淡入 转出似乎工作正常 但转入则不然
  • Tkinter 单选按钮指示器无法识别

    我希望我的单选按钮通过设置 Indicatoron 0 来使用本页提到的按钮框界面 http effbot org tkinterbook radiobutton htm http effbot org tkinterbook radiob
  • 使用多线程时如何使用Delphi设计时FireDac TFDQuery?

    我想设计我的TFDQuery使用组件编辑器 即在设计时设置 SQL 字符串 选项等 然后在线程中使用查询 我的问题是 线程的每个运行实例都需要自己的查询实例 否则它将不是线程安全的 我是否应该在线程开始运行时克隆查询 即在线程的 Execu
  • 检查 Windows 更新是否可用

    是否可以通过编程方式检查 Windows 是否有可用的新更新 欢迎任何建议 谢谢 The Windows更新代理 http msdn microsoft com en us library aa387287 28VS 85 29 aspxA
  • 如何将当前文档的innerHTML下载为文件?

    有没有办法可以下载当前文档innerHTML作为文件以编程方式 我做了以下尝试但没有成功 它确实下载了当前文档的源代码 但这不是我想要的 因为我想保留任何加载后的文档修改 var save document createElement a
  • 如何使用gin作为服务器编写prometheus导出器指标

    这是官方的prometheus golang client示例 package main import log net http github com prometheus client golang prometheus github c
  • 具有资源文件的动态本地化 WPF 应用程序

    试图使我的 wpf 应用程序本地化 我遵循这个 CodeProject 教程 https www codeproject com Articles 299436 WPF Localization for Dummies 我创建了本地化资源文
  • 二维对象数组返回类型 - NSubstitute

    我遇到强制转换异常 System InvalidCastException 无法将类型 System Object 的对象强制转换为类型 System Object 在 Castle Proxies ITestProxy Get2DArra
  • TortoiseGit 中的“远程跟踪分支”在哪里?

    如何在TortoiseGit中找到 远程跟踪分支 以设置从中拉取的默认分支 打开 浏览参考 对话框 参见https tortoisegit org docs tortoisegit tgit dug browse ref html http
  • R:内部函数可以使用外部函数的变量吗?

    内部函数可以使用调用它的函数环境中存在的变量吗 inner lt function x return x y z a outer lt function x y z a lt x y z inner x 在这里 当我打电话时inner x
  • 使用 sympy 计算多元函数的泰勒级数

    我正在尝试使用 SymPy 计算依赖于三角函数的函数的泰勒级数sinc here http docs sympy org dev modules mpmath functions trigonometric html sinc functi
  • @ActiveProfiles 值未分配给配置

    如果我将它们设置为虚拟机参数 我的活动配置文件将正常工作 我有一个想要使用的测试 ActiveProfiles local 这是我正在使用的类注释 RunWith SpringJUnit4ClassRunner class ContextC
  • 使用 Twitter Bootstrap,如何自定义一页的 h1 文本颜色,而将其他页面保留为默认颜色?

    在我的索引页面上 我希望 h1 文本颜色为白色并带有阴影 但我不想更改其他页面上 h1 的默认行为 我怎样才能实现这个目标 在 Bootstrap 3 中 以下是更改文本颜色的类 p class text muted p grey p cl
  • Python 中更快的套接字

    我有一个用 Python 编写的服务器客户端 它通过 LAN 运行 该算法的某些部分使用套接字密集读取 其执行速度比几乎一样的 http pastie org 3962231用 C 编写 有哪些解决方案可以使 Python 套接字读取速度更
  • 从视图创建位图使视图消失,如何获取视图画布?

    我发现了两种从视图创建位图的方法 但一旦我这样做了 视图就会消失 我就不能再使用它了 生成位图后如何重绘视图 1st public static Bitmap getBitmapFromView View view Bitmap retur