- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在为 android 开发一个动态壁纸应用程序。
当我将 loadShape
与某些 SVG
一起使用时,它无法在 Android 模式下正确呈现。但它在 java 模式下正确呈现。
这是一个这样的svg kiwi.svg .它被渲染成 this .
但是this svg 正在正确 呈现。 Download orange.svg
我整理了这段简单的代码来演示我的意思。
PShape svg;
int num = 1;
String[] assets = {
"tomato.svg", "ogears.svg", "watermelon.svg", "kiwi.svg"
};
void settings() {
size(displayWidth, displayHeight, P3D);
}
void setup(){
svg = loadShape(assets[num]);
}
void draw(){
background(255);
push();
translate(svg.width/2, svg.height/2);
scale(map(mouseY, 0, height, 0, 1));
translate(-svg.width/2, -svg.height/2);
ellipse(displayWidth/2, displayHeight/2, 200, 200);
//translate(displayWidth/2, displayHeight/2);
shape(svg);
push();
noFill();
stroke(0);
strokeWeight(10);
rect(0, 0, svg.width, svg.height);
pop();
pop();
}
void push(){
pushMatrix();
pushStyle();
}
void pop(){
popStyle();
popMatrix();
}
void mousePressed(){
num++;
num = num % 4;
svg = loadShape(assets[num]);
}
可以在此处找到 Assets 和完整代码。 SVGTests.zip
即使我使用像 size(.., .., P2D)
这样的 P2D 渲染器,它也不 工作。
我猜我的 svg 与 processing-android 不兼容。
当我使用 this 时svg 我得到 ArrayIndexOutOfBoundsException: 145
草图消失了。 Download-it
所以我的问题是我是否应该将我所有的 loadShape
用法替换为 loadImage
并将我所有的 svg 转换为 png 格式而不是处理这个?
最佳答案
回答我的问题:
所以我注意到这两个 svg 之间的区别 the working one和 the distorted one .
区别是
<path>
其中的元素。<path>
和 <circle>
元素。Android 模式渲染器无法渲染 <circle>
svg 标签正确。
这就是它呈现 svg 的方式。
需要注意的是,只有圆圈变形了(而不是它们应该在的地方)。
所以我尝试将所有形状转换为 <path>
使用 Inkscape。它似乎正在工作,因为渲染器可以渲染 <path>
正确标记。
实现步骤:
Path > Object To Path
CTRL+SHIFT+C性能:
我还观察到 loadShape
所花费的时间转换所有 circles
后显着增加至 paths
在 java 和 android 模式下。
Java 渲染器(Windows 10 电脑)
name: kiwi-paths size: 917.71655 917.71655
time: 178.0 ms
name: kiwi-original size: 917.71655 917.71655
time: 74.0 ms
Android 渲染器(Android 7.0 Redmi note 4)
name: kiwi-paths size: 917.71655 917.71655
time: 190.0 ms
name: kiwi-original size: 917.71655 917.71655
time: 100.0 ms
因此,如果在 PC 上运行,最好不有路径但有原始形状。
我还提交了 issue在 processing-android github 仓库中。
关于android - 在处理 Android 模式时 svgs 的 loadShape 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57145711/
如何使用 d3 将多个带有 id 的 svgs 附加到正文? 这是我第一次尝试绘制 1 svg: // d
在fabricjs v1.5中,我加载了两个不同的svgs,颜色为红色,描边为黑色。现在选择任何 svg 并单击“克隆对象”按钮,它已正确克隆,但是当我选择两个 svg 并单击“克隆组”按钮
我正在尝试为网页创建按钮面板。我用 .svg 文件制作了按钮。使用边距和其他 css 属性,我将它们放到了代码中显示的位置。 我的问题:我不能让两个按钮都完全可点击,具体来说,我可以很好地使用橙色部分
这个问题在这里已经有了答案: clipPath in multiple SVG tags (1 个回答) 4年前关闭。 我在一页上有多个 svg,并已从 illustrator 中单独导出它们。我还通
我无法使用某个表格的内置编辑模式执行我想要的操作,但我将其用于应用程序中的其他表格,因此我想使用以下命令以自定义方式设置选定的单元格: Apple 使用相同的复选标记和空圆圈图标: 有谁知道如何获得以
我用 inkscape 画了一些矢量图。 现在我正在尝试将这些 svg 定位到垂直导航栏中。我想将每个插图定位到相应的位置(使用内联 SVG)。我读过css-tricks: scale-svg这对我很
我有以下应用程序结构: /webapp /lib /assets ic_add_black_24px.svg ic_clear_black_24px.svg
我目前正在做一个元素,我必须在其中构建一个加载屏幕,其中包括一个百分比和定制的 svgs 动画。我在整个互联网上都看过,但找不到任何似乎是我需要的东西?我似乎连一个简单的加载栏都无法工作! 我在下面包
我正在尝试加载与 Angular 7 内联的 svgs。 到目前为止我尝试过: import icon = require('./icon.svg'); 结果为icon.svg由于文件加载器 impo
我正在使用 chrome 中的 React 应用程序,其中涉及大量内联 svg。 如果文本靠近内联 svg,文本周围将随机出现黑色边框。当我突出显示文本时,它有时会消失或出现。 唯一一致的是在出现边框
我通过 api 调用获取 svg 数据并将其附加到 DOM 中的 div。我正在获取 13-14 个 svg 元素并将其附加到单个 div。我想连续显示所有这些 svg。如果我给 svg 元素 wid
我创建了一个点阵视觉效果,如下面的代码片段所示。彩色圆圈代表值,灰色圆圈代表空/未使用。例如,在我的例子中,三种颜色代表来自 3 个国家(美国、加拿大和墨西哥)的项目的百分比形式的资金。灰色代表尚未筹
抱歉,如果我的问题措辞不好。我是初学者,不知道事物的正确标签。 我正在使用 d3.js 制作日本 map ,并想为每个都道府县分配一种颜色。每个都道府县都有自己的 svg。我有一个要使用的颜色的十六进
我用自己的矢量图形创建了一个相当专业的 JavaScript 应用程序。我想托管我自己的可热链接 API 来补充此应用程序,并且认为如果我可以将矢量图形直接嵌入到 API 中,那将非常整洁。 我知道这
我正在使用fabric.js 并将许多SVG 文件加载到其中。使用此代码显示这些导入的文件之一没有问题; fabric.loadSVGFromURL('ico-svg/drink.svg', func
我读过 sweet tutorial关于在 CSS-Tricks 上对 svg-image 中的元素进行动画处理。作者在 svg 中添加了 CSS 类来处理不同的元素。我想使用该技术,但不幸的是在背景
我想使用 svg 作为 div 元素的容器,该元素应包含多个元素。目前它看起来像这样: I'm a very
我有一个非常简单的 Webpack + TypeScript 设置,我正在尝试导入 svgs。我正在使用 svg-sprite-loader 如果我 require() 我的 svgs 如下所示,它会
我一直在对组使用 group.scale.y = -1; 技巧以正确的方式在 three.js 中呈现我的 svg。 然而,这与 y 坐标的概念混淆了,显示从我的组中心向上的正值。通常路径上的正 y
我正在尝试使用 D3 更新 HTML 表格中的数据。我需要更改多列中的数据,更新行数,并根据每个新数据数组为每行中的 SVG 制作动画。我已经尝试了多次尝试、教程、文档,而且我确信这对于对图书馆更有经
我是一名优秀的程序员,十分优秀!