Tôi đang cố gắng sử dụng hình ảnh SVG (được tạo bằng Inkscape và được lưu dưới dạng SVG thuần túy) làm nền cho ứng dụng của tôi. Tôi đang cố gắng làm điều này bằng cách sử dụng thư viện svg-android
. Tôi có một tệp có tên là background.svg
trong số res/raw
. Mã của tôi trông như thế này:Sử dụng SVG làm nền có thể vẽ trong 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);
Tuy nhiên khi ứng dụng của tôi bắt đầu lên, không có gì xuất hiện như là nền tảng (khác với màu nền từ cách bố trí). bố trí tập tin xml của tôi là như sau:
<?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>
CẬP NHẬT
Dường như có một vấn đề với SVG của tôi. Nó có thể là do thực tế là tất cả các tính năng không được hỗ trợ.
Bạn đã cố gắng thiết lập hình ảnh DrawableDrawable làm nền của bố cục thay vì BitmapDrawable bitmapDrawable? –
@DimitrisMakris Vâng, đó là điều đầu tiên tôi đã thử nhưng tôi vẫn có một nền trống. Một vấn đề khác là không có cách nào để thiết lập ốp lát trên một 'PictureDrawable'. –
Chỉ trong trường hợp; - U biết android không hỗ trợ SVG Thử mã trên firefox cho Android? – Chasbeen