2016-02-25 8 views
7

Viene menzionato [qui] [1] che la nuova libreria di supporto ora supporta i vettori animati, che in precedenza era supportato solo nell'API 21+. Ho aggiornato la mia libreria di supporto all'ultima versione.<animato-vector> richiede il livello API 21 (min corrente 15)

Ma Android Studio mi dà ancora un avvertimento: il vettore animato richiede il livello API 21 (il minuto corrente è 15).

ho fatto i seguenti:

ho aggiunti i seguenti codici per build.gradle:

defaultConfig { 
    generatedDensities = [] 

} 
// This is handled for you by the 2.0+ Gradle Plugin 
aaptOptions { 
    additionalParameters "--no-version-vectors" 
} 

Così ora il mio file build.gradle assomiglia a questo:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
buildToolsVersion "23.0.2" 

defaultConfig { 
    applicationId "com.example.mahdi.askhow" 
    minSdkVersion 15 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
    generatedDensities = [] 

} 
// This is handled for you by the 2.0+ Gradle Plugin 
aaptOptions { 
    additionalParameters "--no-version-vectors" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
} 

repositories { 
    mavenCentral() 
    maven { url "https://jitpack.io" } 
} 
dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.2.0' 
    compile 'com.android.support:design:23.2.0' 
    compile 'com.mcxiaoke.volley:library:1.0.19' 
    compile 'com.wang.avi:library:1.0.2' 
    compile 'com.nineoldandroids:library:2.4.0' 
    compile project(':phoenix') 
    compile 'com.github.dmytrodanylyk.circular-progress-button:library:1.1.3' 

} 

mio animato drawable:

<?xml version="1.0" encoding="utf-8"?> 
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/vector_upvote"> 

    <target 
     android:name="rotationGroup" 
     android:animation="@anim/rotate_a_to_b" /> 


    <target 
     android:name="left_arrow" 
     android:animation="@animator/animator_checkmark" /> 
</animated-vector> 

Sulla prima riga del file animato, si dice: il vettore animato richiede il livello API 21 (il minuto corrente è 15).

Quindi cosa c'è che non va?

[1]: http://android-developers.blogspot.com/2016/02/android-support-library-232.html 
+0

Il codice funziona? Ho notato che è presente un avvertimento quando si utilizza la nuova app: attributo srcCompat anche in xml. Tuttavia si tratta solo di un controllo insufficiente della lanuggine e il codice viene eseguito. Probabilmente lo sistemeranno nella prossima versione di Studio. – Jahnold

+0

Alex ha già risposto. Sì, esiste ancora un avviso quando si utilizza: app: srcCompat, sembra che dobbiamo ignorare l'avviso e attendere un aggiornamento per lo studio. – SMahdiS

risposta

9

Ok. Ho provato questo. FUNZIONA! ho creato animato vettore drawable e aggiunto questo a disposizione:

<ImageView 
    android:id="@+id/animated" 
    android:layout_width="match_parent" 
    android:layout_height="80dp" 
    app:srcCompat="@drawable/animated" /> 

E questo in codice:

ImageView animatedView = (ImageView) findViewById(R.id.animated); 
Drawable animation = animatedView.getDrawable(); 
if (animation instanceof Animatable) { 
    ((Animatable) animation).start(); 
} 

Android in studio mi mostrare questo drawable in anteprima, ma app si è schiantato in fase di start (Android 4.0 telefono)

Quindi ho sostituito android:src per app:srcCompat e l'anteprima si è rotta. Ma questa app è stata avviata su telefoni Android 4.0 e opere di animazione.

Conclusione: la libreria di supporto funziona. Android studio (1.5.1) non ancora pronto.

+1

In quale directory è stato archiviato il vettore? drawable-v21 o solo drawable? – Codeversed

+1

Li ho trasformati in disegnabili –

Problemi correlati