Ich weiß, dass mithilfe von Drittanbieter-Bibliothek ist es möglich, SVG-Bild in Android zu verwenden. Bibliothek wie: svg-androidDynamisch ändern SVG-Bildfarbe in Android
Der Code zu laden SVG-Datei wie unten:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create a new ImageView
ImageView imageView = new ImageView(this);
// Set the background color to white
imageView.setBackgroundColor(Color.WHITE);
// Parse the SVG file from the resource
SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.android);
// Get a drawable from the parsed SVG and set it as the drawable for the ImageView
imageView.setImageDrawable(svg.createPictureDrawable());
// Set the ImageView as the content view for the Activity
setContentView(imageView);
}
Es funktioniert gut. Ich kann das Bild sehen. Aber jetzt möchte ich die Farbe für das Svg-Bild zur Laufzeit ändern. Dafür habe ich den folgenden Code ausprobiert, wie in der gleichen Projektbeschreibung erwähnt.
// 0xFF9FBF3B is the hex code for the existing Android green, 0xFF1756c9 is the new blue color
SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.android, 0xFF9FBF3B, 0xFF1756c9);
Aber damit bin ich nicht in der Lage, die Änderung in der Farbe zu sehen. Also würde ich gerne wissen, wie es möglich ist, die Farbe in der Java-Datei dynamisch zu ändern.
Stellen Sie sicher, diese Farbe '0xFF9FBF3B' in Ihrem svg existiert (es nur in einem Texteditor öffnen und für diesen Wert suchen). Beachten Sie, dass die Farbänderung nur ** beim Laden der Datei ** erfolgt, nicht dynamisch. Laden Sie die Datei einfach neu, um die Farbänderung zu übernehmen. –