มีปัญหากับ Real Device โดยใช้ภาพเวกเตอร์ใน Android SVG-android

ฉันใช้ 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