Sto cercando di usare un'immagine SVG (creato con Inkscape e salvato come SVG normale) come sfondo per la mia applicazione. Sto cercando di farlo usando la libreria svg-android
. Ho un file chiamato background.svg
in res/raw
. Il mio codice è simile al seguente:L'utilizzo di uno SVG come sfondo disegnabile in Android
SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.background);
Drawable pictureDrawable = svg.createPictureDrawable();
Bitmap bitmap = Bitmap.createBitmap(pictureDrawable.getIntrinsicWidth(), pictureDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap);
LinearLayout backgroundLayout = (LinearLayout) findViewById(R.id.background);
bitmapDrawable.setTileModeX(Shader.TileMode.REPEAT);
backgroundLayout.setBackgroundDrawable(bitmapDrawable);
Tuttavia quando la mia applicazione si avvia, non appare nulla come sfondo (diverso dal colore di sfondo dal layout). Il mio file xml disposizione è la seguente:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#aacceeff"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/background"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
>
</LinearLayout>
</LinearLayout>
UPDATE
Sembra che ci sia un problema con il mio SVG. Potrebbe essere dovuto al fatto che tutte le funzionalità non sono supportate.
Hai provato a impostare la Drawable pictureDrawable come sfondo del layout, invece di BitmapDrawable bitmapDrawable? –
@DimitrisMakris Sì, è stata la prima cosa che ho provato, ma ho ancora uno sfondo vuoto. Un altro problema è che non c'è modo di impostare la piastrellatura su 'PictureDrawable'. –
Solo nel caso, - U know Android non supporta nativamente SVG Prova il tuo codice su Firefox per Android? – Chasbeen