Mengalami masalah pada Perangkat Asli yang menggunakan gambar vektor di Android. SVG-android

Saya menggunakan svg-android.jar dari https://github.com/pents90/svg-android agar berfungsi dengan baik tetapi hanya pada perangkat emulator di Eclipse. Arrrr. Di perangkat sebenarnya hanya mengosongkan imageView di layar. ini kode saya:

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

ada saran?


person Ivan Podhornyi    schedule 21.08.2013    source sumber


Jawaban (2)


Pada perangkat baru yang mengaktifkan rendering perangkat keras secara default, Anda perlu mengaktifkan rendering perangkat lunak secara eksplisit.

imgView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

Saya menduga ini mungkin masalah Anda.

person Paul LeBeau    schedule 21.08.2013
comment
Perhatikan bahwa Anda juga dapat melakukan ini dalam XML android:layerType="software" - person William; 13.03.2015

Gunakan AppCompatImageView sebagai ganti ImageView di xml seperti kode di bawah ini

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

dan di build.gradle Anda

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

Jika cara di atas tidak berhasil, coba juga di kelas aplikasi Anda

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
Hanya menggunakan AppCompatImageView + srcCompat berhasil untuk saya, terima kasih - person crgarridos; 13.06.2018