web-dev-qa-db-fra.com

Avoir un problème sur un appareil réel en utilisant une image vectorielle dans Android. SVG-android

J'utilise svg-Android.jar de https://github.com/pents90/svg-Android fonctionne correctement, mais uniquement sur les émulateurs d'Eclipse. Agrrrr. Sur les appareils réels, il suffit de vider imageView à l'écran. voici mon code:

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

toute suggestion?

26
Ivan Podhornyi

Sur les appareils plus récents dont le rendu matériel est activé par défaut, vous devez activer explicitement le rendu logiciel.

imgView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

Je suppose que c'est probablement votre problème.

46
Paul LeBeau

Utilisez AppCompatImageView à la place ImageView en xml comme le code ci-dessous

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

et dans votre build.gradle

Android {
  defaultConfig {
    vectorDrawables {
      useSupportLibrary = true
    }
  }
}

Si ce qui précède ne fonctionne pas, essayez-le également dans votre classe d'application

public class App extends Application {

  @Override public void onCreate() {
    super.onCreate();
    // Make sure we use vector drawables
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
  }
}
1
emilpmp