如何让我的svg文件占据Android中给定的Linearlayout背景?

时间:2014-07-09 18:01:24

标签: android svg background android-linearlayout

我没有让我的svg图像填满我的项目的背景LinearLayout! 要下载我正在使用的svg库,请单击此处 androidsvg-1.2.1.jar。 要下载的SVG文件,click here

android xml代码:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:paddingBottom="0dp"
android:weightSum="1"
android:orientation="vertical"
tools:context=".MenuActivity"
android:background="#fff5f5f5">

<LinearLayout
    android:id="@+id/titulo_menu"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:paddingBottom="0dp"
    android:orientation="vertical"
    android:layout_weight="0.22"
    android:weightSum="1">


    <TextView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.8"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="bem_vindo"
        android:textSize="33sp"
        android:textColor="#ff5c5c5c"
        android:typeface="sans"
        android:gravity="center" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.2"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="escolha"
        android:textSize="12sp"
        android:gravity="bottom|center_horizontal" />

</LinearLayout>

<LinearLayout
    android:id="@+id/opcoes_menu"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.68"
    android:onClick="saberDimensao">
</LinearLayout>

<LinearLayout
    android:id="@+id/rodape_nextcompany"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:orientation="horizontal"
    android:layout_weight="0.05">

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="quci"
        android:orientation="horizontal"
        android:gravity="right"
        android:layout_weight="47"
        android:layout_gravity="bottom"
        android:textStyle="bold"
        android:textColor="#ffc04f4c"
        android:paddingRight="1dp" />
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:layout_weight="53"
        android:text="quick"
        android:orientation="horizontal"
        android:gravity="left"
        android:layout_gravity="bottom"
        android:textColor="#ff548dd4"
        android:textStyle="bold" />


</LinearLayout>
<TextView
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:layout_weight="0.05"
    android:text="quick"
    android:paddingTop="0dp"
    android:layout_gravity="center_horizontal"
    android:gravity="center_horizontal" />

android java code:

import android.graphics.Picture;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.PictureDrawable;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;

import com.caverock.androidsvg.SVG;
import com.caverock.androidsvg.SVGParseException;


public class MenuActivity extends ActionBarActivity {
    private LinearLayout linearLayout;
    private double SIZE_VERTICAL = 0.68;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu);

        linearLayout = (LinearLayout) findViewById(R.id.opcoes_menu);
        linearLayout.setOrientation(LinearLayout.VERTICAL);

        try
        {
            SVG svg = SVG.getFromResource(this, R.raw.desenho);
            Drawable drawable = new PictureDrawable(svg.renderToPicture());

            if(Build.VERSION.SDK_INT >= 16){
                linearLayout.setBackground(drawable.getCurrent());
            }else{
                linearLayout.setBackgroundDrawable(drawable);
            }
        }
        catch(SVGParseException e){
            Log.e("MenuActivity", "Nao eh possivel abrir SVG File." + e);
        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.sobre) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

}

1 个答案:

答案 0 :(得分:0)

在'application'标记

之后的manifest.xml中添加此代码
    <supports-screens android:resizeable="true"
                  android:smallScreens="true" 
                  android:normalScreens="true" 
                  android:largeScreens="true"
                  android:anyDensity="true" />

Reference