ImageView 与 Canvas

ImageView vs Canvas

ImageView class 和 Canvas class 是完全不同的绘制方式还是相关?另外,使用它们各自的优缺点是什么?

比较ViewCanvas就是比较苹果和橘子。出现在屏幕上的任何内容都在 View 中。 Canvas 只是提供了一种绘制东西的方法;所有 View 类型都在内部使用它,包括 ImageView。如果您实现自定义 View 类型,则 CanvasonDraw() 的参数,您可以使用它来进行自定义绘图。 Canvas 也可用于绘制屏幕外的 Bitmap 对象,但您仍然需要使用某种 View 对象才能将其绘制到屏幕上。如果您熟悉 Java 的 AWT 或 Swing,请将 Android 的 Canvas class 视为类似于 J2SE 的 Graphics class .

有关所有这些工作原理的更多信息,请查看 Android 开发人员指南主题 Canvas and Drawables

AN ImageView 是一个包含位图对象的视图。你根本不吸引它。它只是屏幕上的位图。

A canvas 是低级绘图抽象 - 它是您可以绘图的地方。您可以进行任何类型的绘制 - 线条、图像文本等。如果您想从头开始绘制复杂的视图,或者绘制内存位图,就可以使用它。