Возникла проблема на реальном устройстве с использованием векторного изображения в Android. SVG-андроид

Я использую svg-android.jar из https://github.com/pents90/svg-android при его работе нормально, но только на устройствах эмулятора в eclipse. Агрррр. На реальных устройствах на экране просто пусто imageView. вот мой код:

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

любое предложение?


person Ivan Podhornyi    schedule 21.08.2013    source источник


Ответы (2)


На более новых устройствах, на которых аппаратный рендеринг включен по умолчанию, вам необходимо явно включить программный рендеринг.

imgView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

Я подозреваю, что это, вероятно, ваша проблема.

person Paul LeBeau    schedule 21.08.2013
comment
Обратите внимание, что вы можете сделать это и в XML android:layerType="software" - person William; 13.03.2015

Используйте AppCompatImageView вместо ImageView в xml, как показано ниже.

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

и в вашем build.gradle

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

Если вышеперечисленное не работает, попробуйте это также в своем классе приложения.

public class App extends Application {

  @Override public void onCreate() {
    super.onCreate();
    // Make sure we use vector drawables
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
  }
}
person emilpmp    schedule 29.08.2017
comment
У меня сработало простое использование AppCompatImageView + srcCompat, спасибо - person crgarridos; 13.06.2018