Wiem, że korzystając z biblioteki stron trzecich, możliwe jest użycie obrazu SVG w systemie Android. Biblioteka jak: svg-androidDynamicznie zmieniaj kolor obrazu SVG w Androidzie
Kod załadować SVG obraz jest jak poniżej:
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);
}
To działa dobrze. Jestem w stanie zobaczyć obraz. Ale teraz chcę zmienić kolor obrazu svg w czasie wykonywania. Dla tego próbowałem kodu poniżej, jak wspomniano w tym samym opisie projektu.
// 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);
Ale z tym nie jestem w stanie zobaczyć zmiany w kolorze. Chciałbym więc wiedzieć, jak można dynamicznie zmienić kolor w pliku Java.
Upewnij się ten kolor '0xFF9FBF3B' istnieje w SVG (wystarczy otworzyć go w edytorze tekstu i szukać tej wartości). Należy pamiętać, że zmiana koloru ma miejsce ** podczas ładowania pliku **, a nie dynamicznie. Wystarczy więc ponownie załadować plik, aby zastosować zmianę koloru. –