android - 在画布上绘制矢量可绘制对象(图像拉伸)
问题描述
我正在使用 android 中提供的 PDF api 创建 pdf,我想image
在特定的 pdf 中绘制x,y
。
绘图已完成,但由于尺寸小,可绘制的 vaore 被拉伸并产生低质量的输出。
这是我用来绘制drawable的代码。
Drawable starIcon = getContext().getDrawable(R.drawable.ic_star);
VectorDrawableCompat moonIcon = VectorDrawableCompat.create(getContext().getResources(),R.drawable.ic_moon,getActivity().getTheme());
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(595, 842, 2).create();
PdfDocument.Page page = pdfDocument.startPage(pageInfo);
Canvas canvas = page.getCanvas();
float x = drawX + (perItemWidth * col);
RectF rectF = new RectF();
rectF.set(x + 2.5F - perItemWidth, drawY + 1, x + 1, drawY + perItemHeight - 1);
float importantSpaceFromLeft = (rectF.width() * 10F) / 100F;
float importantSpaceFromTop = ((rectF.height() * 2F) / 100F);
Rect moonIconBounds = new Rect();
moonIconBounds.left = (int) (rectF.left + ((rectF.height() * 10F) / 100F)) + 10;
moonIconBounds.right = (int) (rectF.left + ((rectF.height() * 10F) / 100F)) + 20;
moonIconBounds.bottom = (int) (rectF.bottom - importantSpaceFromTop) - 10 - 2;
moonIconBounds.top = (int) (rectF.bottom - importantSpaceFromTop) - 20 - 2;
//Setting bounds like 0,0,20,20
moonIcon.setBounds(0,0,moonIconBounds.width(),moonIconBounds.height());
canvas.save();
//Translate canvas to draw at x,y
canvas.translate(moonIconBounds.left,moonIconBounds.top);
moonIcon.draw(canvas);
canvas.restore();
Rect starIconBounds = new Rect();
starIconBounds.left = (int) (rectF.left + ((rectF.height() * 10F) / 100F)) + 10;
starIconBounds.right = (int) (rectF.left + ((rectF.height() * 10F) / 100F)) + 20;
starIconBounds.bottom = (int) (rectF.bottom - importantSpaceFromTop);
starIconBounds.top = (int) (rectF.bottom - importantSpaceFromTop) - 10;
//Setting bound from rect
starIcon.setBounds(starIconBounds);
starIcon.draw(canvas);
output
产生相同结果的两个图像都在拉伸,我不知道为什么两个向量都是从svg转换的。我怎样才能达到击球手的结果。
解决方案
推荐阅读
- php - 目标类 [App\Http\Controllers\OrderController] 不存在
- javascript - 如何在给定一系列块的情况下生成随机“视觉上令人愉悦”的 2D 矩阵?
- instagram - Instagram API 通过标签返回 URL 重定向 302 获取帖子
- html - 使用查询字符串键/值对作为路由机制是否被认为是不好的做法?
- node.js - 防止多个 NodeJS 实例处理 Redis PubSub 事件
- json - Swift 使用应用程序沙箱内文件中的 JSON
- flutter - 如何在颤动中使用扩展图像裁剪图像
- swift - Amadeus 航班优惠搜索未完成 [SWIFT API] 是错误吗?
- typescript - 角度 5 中的数据渲染问题
- mysql - (具有挑战性的 sql)比较两个表的不同值