2017-03-04 66 views
1

我製作RN應用程序。對於Android版本我已經 /drawable/splash_screen.xml與以下內容如何使用svg而不是png實現Android啓動畫面?

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
    android:drawable="@color/gray"/> 

    <item> 
    <bitmap 
     android:gravity="center" 
     android:src="@mipmap/ic_launcher"/> 
    </item> 

</layer-list> 

,並鏈接到本文件在res /價值/ styles.xml

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="android:windowBackground">@drawable/splash_screen</item> 
</style> 

也AndoirdManifest.xml

<application 
    android:name=".MainApplication" 
    android:allowBackup="true" 
    android:label="@string/app_name" 
    android:icon="@mipmap/ic_launcher" 
    android:theme="@style/AppTheme"> 
    <activity 
    android:name=".MainActivity" 
    android:label="@string/app_name" 
    android:theme="@style/SplashTheme" 
    android:screenOrientation="landscape" 
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
    </activity> 
    <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> 
</application> 

這工作正常,但我想製作SVG文件,而不是PNG(mipmap/ic_launcher)。 SVG文件可能是這樣的 https://developer.android.com/reference/android/graphics/drawable/AnimatedVectorDrawable.html (至少沒有動畫)。 如何做到這一點?

+0

我試着用可繪製的比例尺,但它的默認級別是0,不能在可繪製的xml中設置。這是一個恥辱,因爲這將是解決方案。 <規模 機器人:抽拉= 「@繪製/ somesvg」 機器人:scaleGravity = 「center_vertical | fill_horizo​​ntal」 機器人:scaleHeight = 「100%」 機器人:scaleWidth = 「80%」/> – Softlion

回答

-1

嗨,你可以簡單地導入您的SVG到您的項目通過以下這一點:

  1. 鼠標右鍵單擊在機器人工作室繪製文件夾。
  2. 選擇新建>矢量繪製>本地文件
  3. 導入後文件將被複制到可繪製文件夾。
  4. 現在,您可以參考繪製這樣

    <item 
        android:drawable="@color/off_white"/> 
    
    <item> 
        <bitmap 
         android:gravity="center" 
         android:src="@drawable/yoursvg"/> 
    </item> 
    

在這之後,你應該能夠看到你在屏幕上的圖像。請測試並接受它作爲答案,如果它可以幫助你。

+1

不幸的是,這不作品。應用程序在啓動時崩潰(彈出消息:「Myapp已停止」)。我曾嘗試從AnimatedVectorDrawable和我的svg文件svg。 – CodeBy

+0

如果您測試的設備低於lolipop,則應在您要測試的設備上添加此行。gradle文件vectorDrawables.useSupportLibrary = true – Sid

+0

我使用Android 5.0+ – CodeBy

1

Android Studio中默認的SVG導入器工作不好,所以我建議使用SVG到VectorDrawable轉換器,如svg2android

現在我們需要使用svg2android生成的代碼創建一個可繪製的文件。

RES /繪製 - >新建 - >繪製資源文件 - >粘貼向量代碼有

而且在splash_screen.xml我們需要用我們的矢量 作爲添加項目drawablegravity設置爲center

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <!-- background with solid color --> 
    <item android:drawable="@android:color/white"/> 

    <!-- logo --> 
    <item 
     android:drawable="@drawable/your_logo" 
     android:gravity="center"/> 

</layer-list>