Android:在位图/ Canvas 中拉伸(stretch)/挤压绘图

标签 android bitmap android-canvas

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

我需要移除透明部分并将小部件绘制到大小正确的背景上,没有多余的东西。由于某种原因,这比我预期的要难。

有问题的小部件示例。这是一个不同的小部件,但为了说明它在方形背景上的表现。看到角落是如何圆润的吗?

Square Canvas for Widget

将位图调整为矩形,拉伸(stretch)边角和挤压/拉伸(stretch)字体: Rect Canvas for Widget

你知道如何预防吗?

最佳答案

耶耶耶!我想到了!

在onDraw(Canvas 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); 

然后我只需确保我所有的矩形都只使用 Canvas 的前 1/3

enter image description here

关于Android:在位图/ Canvas 中拉伸(stretch)/挤压绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27275568/

相关文章:

android - Android 中的椭圆 View

java - Android:保持fragment在后台运行

android - Android 服务中的数据包监听器

android - 中心域标签 Androidplot 条形图

java - SurfaceHolder导致闪烁

java - Android 在位图上以编程方式绘制形状

Android View InflateException 错误

android - 位图:无法获取对像素的强引用

Android Studio 在构建项目时出现 R 错误

android - 奇怪的行为 Canvas - 位图自行旋转