Comments (8)
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.
Depends on #130
from androidsvg.
Marking this as a dup of #130. Since once that is implemented, this feature request will automatically be fulfiilled.
from androidsvg.
Related Issues (20)
- SVG drawable alpha value is not supporated HOT 1
- Make fallback color configurable HOT 3
- Svg Color Filter
- Fhhj
- Marcoscortes1
- Look for `currentColor` in case-insensitive manner
- Handle all CSS system colors HOT 1
- This svg file, there is a problem HOT 3
- I want to need content width and height without set view box so how can i resolve this issue ?
- I want to get only drawn content of svg as picture HOT 3
- below svg is getting cut in imageview, I want to get whole svg as picture how to do it HOT 5
- SVG Rendering Issue in androidsvg Library HOT 3
- Support animated gif and webp for <image> HOT 3
- Android 14 emulator: App crashes with java.lang.SecurityException: "Writable dex file is not allowed. " HOT 2
- Release 1.5
- colrv1 asset with multi-layers HOT 2
- Text is misplaced HOT 2
- 图片放到之后有黑色边框 HOT 2
- SVG href or xlink:href not working
- Text is hidden after scaled a element
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.