在没有预定义大小的情况下动态绘制静态图像的最佳方法



我正在编写一个应用程序,如果用户选择了一个选项,该应用程序需要渲染图像。图像将读取数据文件,并根据数据文件的内容呈现适当数量的矩形、线条和文本(我正在可视化数据(。我读过这个网站Drawables或Canavs,如果我理解正确,它说我应该使用Drawables。但我不明白(没有找到或错过(的是我在哪里定义了绘制形状的空间。由于在阅读数据文件之前,我不知道形状的数量,也不知道整个可视化的大小,所以我不知道我需要多大的合成图像(渲染所有形状和线条所需的大小(。

所以我有三个问题。

我应该使用绘图工具来完成我需要做的事情吗?mDrawable.setBounds方法是否定义了我正在进行的可视化的"大小"我可以用绘图笔划线和插入文本吗?

要显示Drawable,您可以使用源设置为Drawable的ImageView,或背景设置为dravable的其他UI组件,或者覆盖您自己的自定义UI视图的onDraw方法,并使用Drawable#draw(Canvas(调用将Drawable绘制到画布,从而将使用该画布绘制自身的视图绘制出来。Drawable#setBounds方法定义Drawable#draw方法在画布上的绘制位置。

一般来说,在您的情况下,Drawable根本不会被使用。相反,您只需将View子类化,覆盖onDraw(Canvas(,然后直接在Canvas对象上进行绘图调用。此对象具有drawBitmap、drawLines、drawText等方法:
http://developer.android.com/reference/android/graphics/Canvas.html#drawText(java.lang.String,%20float,%20浮点,%20android.graphics.Paint(

最新更新