2013-08-21 7 views
26

Io uso svg-android.jar da https://github.com/pents90/svg-android al suo funzionamento, ma solo su dispositivi di emulazione in eclissi. Agrrrr. Sui dispositivi reali è sufficiente svuotare lo schermo imageView. Ecco il mio codice:Hai problemi con Real Device usando l'immagine vettoriale in Android. SVG-android

SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.test); 
Drawable drawable = svg.createPictureDrawable(); 
imgView.setImageDrawable(drawable); 

qualsiasi suggerimento?

risposta

44

Sui dispositivi più recenti con il rendering hardware attivato per impostazione predefinita, è necessario attivare esplicitamente il rendering del software.

imgView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

Sospetto che questo sia probabilmente il tuo problema.

+0

grazie mille !!!!!!! funziona) –

+13

Nota che puoi farlo anche in XML 'android: layerType =" software "' – William

0
Use AppCompatImageView instead Imageview in xml like the below code 

    <android.support.v7.widget.AppCompatImageView 
    android:tint="#d74313" 
    app:srcCompat="@drawable/circle_icon" 
    android:layout_width="30sp" 
    android:layout_height="30sp" /> 


and in your build.gradle 

    android { 
    defaultConfig { 
    vectorDrawables { 
     useSupportLibrary = true 
    } 
    } 
} 

If the above doesn't work, try this also in your application class 

    public class App extends Application { 

    @Override public void onCreate() { 
    super.onCreate(); 

    // Make sure we use vector drawables 
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); 
    } 
}