Estoy tratando de usar una imagen SVG (creada usando Inkscape y guardada como SVG simple) como fondo para mi aplicación. Estoy tratando de hacer esto usando la biblioteca svg-android
. Tengo un archivo llamado background.svg
en res/raw
. Mi código es el siguiente:Usando un SVG como fondo dibujable en 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);
Sin embargo, cuando mi aplicación se inicia y no aparece nada como el fondo (que no sea el color de fondo de la disposición). Mi archivo XML distribución es la siguiente:
<?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>
ACTUALIZACIÓN
Parece que hay un problema con mi SVG. Puede deberse al hecho de que no todas las funciones son compatibles.
¿Ha intentado configurar la imagen DrawableDrawable como fondo del diseño en lugar de BitmapDrawable bitmapDrawable? –
@DimitrisMakris Sí, eso fue lo primero que probé, pero todavía tengo un fondo en blanco. Otro problema es que no hay forma de establecer el mosaico en un 'PictureDrawable'. –
Por las dudas; - U sabe que Android no es compatible nativamente con SVG Pruebe su código en Firefox para Android? – Chasbeen