- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个具有相同自定义 View 类的三个全屏 subview 的相对布局。我想知道我是否应该担心内存。从这个答案来看: Understanding Canvas and Surface concepts
所有 View 都通过具有底层位图的相同 Canvas 进行绘制,这样内存就不会增加三倍。任何人都可以确认吗?这是有道理的,否则全屏 TextView 将非常低效。
奖励:canvas 的目的是定义位图的可绘制区域并将 View 坐标转换为位图坐标吗?
最佳答案
根据文档 http://developer.android.com/guide/topics/graphics/2d-graphics.html#draw-with-canvas :
When you're writing an application in which you would like to perform specialized drawing and/or control the animation of graphics, you should do so by drawing through a Canvas. A Canvas works for you as a pretense, or interface, to the actual surface upon which your graphics will be drawn — it holds all of your "draw" calls. Via the Canvas, your drawing is actually performed upon an underlying Bitmap, which is placed into the window.
在 onDraw(Canvas canvas)
中,您将获得一个 canvas
对象。此 canvas
有一个底层 bitmap
。并非所有 View 都具有相同的 Canvas 。 Canvas 只是普通 bitmap
(屏幕上的像素)之上的一层。 canvas
让您可以随心所欲地操作位图
。所以每个 View 都有一个 Canvas ,但不是它自己的位图。
所以不,就内存而言,三 View 并不意味着内存增加了三倍,因为只有 一个
位图。然而,您可以创建自己的位图
,如果您这样做,那么您将占用大量内存。如果您创建 3 个屏幕大小的位图,您的内存将增加三倍。
关于android - 每个 View 是否都有自己的 Canvas /位图可供绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33362460/
Windows Phone 8 上的开发人员可以使用两个命名空间 - Microsoft.Devices.Sensors 和 Windows.Devices.Sensors。它们几乎完全相同。有人能解
如何使 NameValueCollection 可供 LINQ 查询运算符(例如 where、join、groupby)访问? 我尝试了以下方法: private NameValueCollectio
我希望能够测试哪些文本转语音可供我的 iOS 应用程序与 AVSpeechSynthesis 一起使用。生成已安装声音的列表很容易,但 Apple 将其中一些声音禁止应用程序使用,我想知道哪些声音。
我让 postgres.app 在我的 Mac 上本地运行,并希望我的本地 docker 容器能够连接到它。我该如何最好地做到这一点? 我发现这篇文章建议使用 --add-host 标志(Host p
我有一个包含多个 HTML 文件的文件夹。每个 HTML 文件都使用 AngularJS 并包含相同的声明,如下所示;
与仍然生活在 ant 构建环境世界(在 Windows 机器上)的客户合作。想要在 Java 程序中使用 google-cloud-translate 库,但如果我包含 google-cloud-tr
我是一名优秀的程序员,十分优秀!