我想将视图渲染为位图并保存位图。但是我需要在屏幕外进行所有操作。
我已经试过了:
LayoutInflater inflater = getLayoutInflater();
View linearview = (View) findViewById(R.id.linearview);
linearview = inflater.inflate(R.layout.intro, null);
Bitmap bm = Bitmap.createBitmap( linearview.getMeasuredWidth(), linearview.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bm);
linearview.layout(0, 0, linearview.getLayoutParams().width, linearview.getLayoutParams().height);
linearview.draw(c);
String extStorageDirectory = Environment.getExternalStorageState().toString();
extStorageDirectory = Environment.getExternalStorageDirectory().toString();
OutputStream outStream = null;
File file = new File(extStorageDirectory, "screen1.PNG");
try {
outStream = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
编辑:我的应用程序崩溃,因为视图没有任何宽度或高度。(此措施是为了解决该问题)
抱歉英语不好。
问题在这里:
linearview = inflater.inflate(R.layout.intro, null);
您需要传递父级布局,以便可以对其进行正确测量。我了解您不希望将视图附加到布局,但是您可以通过使用此方法的此版本来将父布局仅用于测量,将false传递给attachToRoot。
public View inflate (int resource, ViewGroup root, boolean attachToRoot)
根据参数的官方文档:
root
:可选视图,该视图是生成的层次结构的父级(如果attachToRoot为true),或者只是一个对象,该对象为返回的层次结构的根目录提供一组LayoutParams值(如果attachToRoot为false)。attachToRoot
:是否应将膨胀的层次结构附加到root参数?如果为false,则root仅用于为XML中的根视图创建LayoutParams的正确子类。
如有疑问,您可以始终将应用程序内容作为父布局传递:
findViewById(android.R.id.content);
问题内容: 我从JNI调用中获取了一个字节数组,并试图用它构造一个Bitmap对象。 我的问题是,以下代码返回空值。 有什么提示吗? PS:像素布局是BGR,而不是RGB。 问题答案: 该解码字节数组确实不适用于此格式。我从BGR手动更改为RGB。 然而, 可以引起: 08-29 14:34:23.460:错误/ AndroidRuntime(8638):java.lang.ArrayIndexO
Blade 内部内置了一个非常简单的模板渲染引擎,如果你有一些简单的页面需要渲染可以试试它(生产环境不适用)。 渲染一个模板需要遵守一条准则: 所有的模板文件都存储在 resources/templates 目录下 你可以调用 Response 方法的 render 方法渲染或者返回一个 String 类型的视图路径。 @GetRoute("/index") public void renderI
因为新版的控制器可以无需继承任何的基础类,因此在控制器中如何使用视图取决于你怎么定义控制器。 模板渲染 渲染模板最常用的是控制器类在继承系统控制器基类(\think\Controller)后调用fetch方法,调用格式: fetch('[模板文件]'[,'模板变量(数组)']) 模板文件的写法支持下面几种: 用法 描述 不带任何参数 自动定位当前操作的模板文件 [模块@][控制器/][操作] 常用
我正试图通过使用在中显示一个带有QT的Coin3D/Open Inventor场景,我需要帮助将其转换为 到目前为止,我尝试的是将场景渲染到中,并获得如下缓冲区: 然后从缓冲区数据创建一个: 这是正确的方法吗? 正如在这个关于绘制图像的问题中所描述的,如果源是一张图片,我就能够绘制它。 e:为了确保我的缓冲区实际上包含一个场景,我将缓冲区内容写入两个文件。例如,您可以使用Irfan View及其插
问题内容: 有没有一种方法可以将html渲染为PNG图片?我知道画布是可能的,但我想呈现例如div之类的标准html元素。 问题答案: 我知道这是一个很老的问题,已经有了很多答案,但是我仍然花了几个小时来尝试做自己想做的事情: 给定一个html文件,从命令行生成具有 透明 背景的(png)图像 使用无头的Chrome(此响应的版本为74.0.3729.157),实际上很容易: 命令说明: 您可以从
这是来自Google Adsense应用程序页面的示例。显示在主页之前的加载屏幕显示在之后。 我不知道如何使用React做同样的事情,因为如果我让React组件渲染加载屏幕,它不会在页面加载时显示,因为它必须等待之前渲染的DOM。 更新: 我以我的方法为例,将屏幕加载程序放入中,并在Reactlifecycle方法中删除它。 示例和反应加载屏幕。