java - 以编程方式在屏幕上绘制矢量可绘制/SVG
问题描述
我正在尝试以编程方式将 SVG 绘制到屏幕上。下面的代码是我尝试过的,当我运行程序时没有任何显示。
public MainView(Context context) {
hexagon = AppCompatResources.getDrawable(context,R.drawable.hex_svg);
}
@Override
protected void onDraw(Canvas canvas) {
hexagon.setBounds(30,30,30,30);
hexagon.draw(canvas);
}
解决方案
该setBounds(int left, int top, int right, int bottom)
方法获取drawable边界框的位置-您已将它们全部设置为30,因此您将drawable的宽度和高度设置为零。
如果您希望图像为 30x,30y,宽度和高度为 30,请调用setBounds(30, 30, 60, 60)
.
另外我会在onLayout
方法中调用它而不是在onDraw
.
推荐阅读
- c - 为什么我不能做 strcpy?
- identityserver4 - IdentityServer 4 令牌签名的自签名证书
- javascript - JavaScript 中的嵌套异步回调
- asp.net-core-2.0 - ASP.NET-Core 2.0 在应用程序启动后添加/删除路由
- azure - 在 Azure 应用服务中部署的 Spring Boot Web 应用中配置 SQL 连接池
- delphi - Delphi - 创建一个通用 TButton 来创建任何给定类的对象
- python - 将不同的字节格式保存为 Python 中的可读文本
- reactjs - 在反应中选择日期时间值时下拉文本为空
- c# - 无法使用自定义属性创建自定义异常类构造函数
- django - JSON 材质 UI 选择下拉