Comments (6)
My intention at some point is to support the SVG DOM. You will then be able to
manipulate any part of the SVG before rendering.
Original comment by [email protected]
on 15 Sep 2014 at 11:59
from androidsvg.
Thanks, will look forward to having a play.
As a stopgap I've just made a quick fork / hack, so the likes of:
getElementById(String) and getElementsByTagName(Class), and TextSequence()
are now public and a: setTextSequenceById(String, String) has magically
appeared. A bit of a frig as even for my limited requirements.
Oh spotted what appears to be a typo in getElementsByTagName, shouldn't the
recursive call be prefixed by a: result.addAll( ) e.g.
private List<SvgObject> getElementsByTagName(SvgContainer obj, Class
clazz)
{
...
if (child instanceof SvgContainer)
result.addAll(getElementsByTagName((SvgContainer) child,
clazz));
^^^^^^^^^^^^^
}
return result;
}
Original comment by [email protected]
on 15 Sep 2014 at 3:49
from androidsvg.
[deleted comment]
from androidsvg.
[deleted comment]
from androidsvg.
Thanks for catching that bug! I'll fix it for the next release.
Original comment by [email protected]
on 15 Sep 2014 at 5:49
from androidsvg.
FYI / to comply with the Licence, I've created a custom version of SVG.java
that includes the bugfix above and adds the following two functions:
public int setTextById(String id, String newText) {
int updated = 0;
if (id == null || id.length() == 0 || newText == null)
return updated;
SvgObject idMatch = getElementById(id);
if ( idMatch != null) {
List<SvgObject> allText = getElementsByTagName((SvgContainer) idMatch, TextSequence.class);
//Should only find one child element, but to be safe
for (SvgObject textSeq : allText) {
((TextSequence) textSeq).text = newText;
updated++;
}
}
return updated;
}
public int replaceTextById(String id, String oldText, String newText) {
int updated = 0;
if (id == null || id.length() == 0 || newText == null || oldText == null)
return updated;
SvgObject idMatch = getElementById(id);
if ( idMatch != null) {
List<SvgObject> allText = getElementsByTagName((SvgContainer) idMatch, TextSequence.class);
//Should only find one child element, but to be safe
for (SvgObject textSeq : allText) {
((TextSequence) textSeq).text = ((TextSequence) textSeq).text.replace(oldText, newText);
updated++;
}
}
return updated;
}
Original comment by [email protected]
on 7 Oct 2014 at 8:41
from androidsvg.
Related Issues (20)
- SVGAndroidRenderer.processMaskBitmaps is very slow HOT 1
- SVGParser is not thread-safe [with fix] (SVG parse error: Invalid colour keyword: white) HOT 2
- FAQ promotes extremely bad backward-compatibility practice HOT 6
- Image references missing SVG support. HOT 3
- Canvas changed after renderToCanvas HOT 1
- Position of Rectf ignored when renderToCanvas HOT 1
- Support for hardware acceleration
- Android version support HOT 1
- Android version support HOT 1
- Pattern fills are rendered with visible grid HOT 4
- Provide copy constructor or allow rendering to multiple viewBox at once HOT 3
- migrate the repository HOT 3
- Move project to Github HOT 1
- NullPointerException in 1.2.2-beta1 when parsing SVG document HOT 4
- SVGImageView crashes on Android 5.0 and higher HOT 5
- Proguard breaks reflective CSS selectors HOT 1
- java.lang.ArrayIndexOutOfBoundsException: length=0; index=-2 in SVGAndroidRenderer.arcTo(SourceFile:2572) HOT 1
- Incorrect rendering of SVG image HOT 5
- Unable to execute dex: Multiple dex files define HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from androidsvg.