Android:在位图/画布中绘制拉伸/压缩

时间:2014-12-03 15:32:55

标签: android bitmap android-canvas

我们的应用程序有几种类型的小部件。它们都被画在方形画布上。它们是可拖动和可调整大小的。一些小部件很薄或很短,当它们靠近放置时,透明部分完全覆盖另一个小部件的可见部分,使得它们难以选择。

我需要移除透明部分并将小部件绘制到正确大小的背景上,而不需要额外的。由于某些原因,这比我预期的要困难。

有问题的窗口小部件示例。这是一个不同的小部件,但要说明它在方形背景上的方式。看看角落是如何圆润的?

Square Canvas for Widget

将位图的大小调整为矩形,使角落拉伸,字体压扁/拉伸: Rect Canvas for Widget

你知道如何防止这种情况吗?

1 个答案:

答案 0 :(得分:1)

Yayyyy !!我想到了!

在onDraw(Canvas画布)中:

旧代码:

canvas.scale((float) width, (float) height);    

新守则:

// Scale square, so nothing gets stretched or squished
canvas.scale((float) width, (float) width);

// Crops the canvas
canvas.clipRect(0f, 0f, 1f, .33f); 

然后我确保我的所有作品仅使用画布的前1/3

enter image description here