2013-08-21 35 views
26

Tôi sử dụng svg-android.jar từ https://github.com/pents90/svg-android khi hoạt động tốt nhưng chỉ trên các thiết bị mô phỏng trong nhật thực. Agrrrr. Trên các thiết bị thực, nó chỉ rỗng imageView trên màn hình. đây là mã của tôi:Có vấn đề về thiết bị thực bằng cách sử dụng hình ảnh vector trong Android. SVG-android

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

bất kỳ đề xuất nào?

Trả lời

44

Trên các thiết bị mới hơn đã bật hiển thị phần cứng theo mặc định, bạn cần phải bật hiển thị phần mềm một cách rõ ràng.

imgView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

Tôi nghi ngờ đây có lẽ là vấn đề của bạn.

+0

cảm ơn rất nhiều !!!!!!! nó hoạt động) –

+13

Lưu ý rằng bạn cũng có thể làm điều này trong 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); 
    } 
}