2016-02-04 2 views
0

Я пытаюсь реализовать Android FillableLoaders в моем приложении с помощью libraray https://github.com/JorgeCastilloPrz/AndroidFillableLoaders Но при разработке макета XML получает ошибку какFillableLoaders Не Работающий

Rendering Problems java.lang.NullPointerException 
at com.github.jorgecastillo.svg.SvgPathParser.parsePath(SvgPathParser.java:52) at com.github.jorgecastillo.FillableLoader.buildPathData(FillableLoader.java:301) 
at com.github.jorgecastillo.FillableLoader.onSizeChanged(FillableLoader.java:192) at android.view.View.sizeChange(View.java:16748) 
at android.view.View.setFrame(View.java:16710) 
at android.view.View.layout(View.java:16626) 
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 
at android.view.View.layout(View.java:16630) 
at android.view.ViewGroup.layout(ViewGroup.java:5437) 
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 
at android.view.View.layout(View.java:16630) 
at android.view.ViewGroup.layout(ViewGroup.java:5437) 
at android.support.v7.internal.widget.ActionBarOverlayLayout.onLayout_Original(ActionBarOverlayLayout.java:437) 
at android.support.v7.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:-1) at android.view.View.layout(View.java:16630) 
at android.view.ViewGroup.layout(ViewGroup.java:5437) 
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079) 
at android.view.View.layout(View.java:16630) 
at android.view.ViewGroup.layout(ViewGroup.java:5437) 

Моего макет XML-файл:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 

    <com.github.jorgecastillo.FillableLoader 
     android:id="@+id/fillableLoader" 
     android:layout_width="306dp" 
     android:layout_height="102dp" 
     app:fl_fillColor="#13579e" 
     app:fl_strokeColor="#13579e" 
     app:fl_originalWidth="3066" 
     app:fl_originalHeight="1024" 
     app:fl_strokeDrawingDuration="2000" 
     app:fl_fillDuration="5000" 
     app:fl_clippingTransform="rounded" 
     android:layout_gravity="center" 
     /> 

</FrameLayout> 

I я использую следующие зависимости:

dependencies { 

    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.1.0'  
    compile 'com.android.support:recyclerview-v7:23.0.1'  
    compile 'com.android.support:cardview-v7:23.0.1' 
    compile 'com.android.support:design:23.0.1'  
    compile 'com.github.jorgecastilloprz:fillableloaders:[email protected]' 
} 
+0

Это действительно быть трудно Findout вопроса. поэтому, пожалуйста, попробуйте подключить это динамически, используя FillableLoaderBuilder к вашему parentView. И посмотрите, показывает ли ошибка все еще –

+0

bro, сообщите мне, если ошибка снова проявится. И если это не так. –

+0

Это работало? –

ответ

1

Как documentation

FrameLayout разработан, чтобы блокировать область на экране для отображения одного элемента.

Корневой формат библиотеки, которую вы используете, уже является FrameLayout. Вы должны использовать LinearLayout или RelativeLayout как root, если вы не хотите отображать только одного ребенка в любой момент времени. Либо добавить эти блоки кодов

<com.github.jorgecastillo.FillableLoader 
    android:id="@+id/fillableLoader" 
    android:layout_width="200dp" 
    android:layout_height="100dp" 
    app:fl_originalWidth="@integer/original_svg_width" 
    app:fl_originalHeight="@integer/original_svg_height" 
    app:fl_strokeColor="@color/stroke_color" 
    app:fl_fillColor="@color/fill_color" 
    app:fl_strokeWidth="@dimen/stroke_width" 
    app:fl_strokeDrawingDuration="@integer/stroke_drawing_duration" 
    app:fl_fillDuration="@integer/fill_duration" 
    app:fl_clippingTransform="waves" 
    /> 

внутри другого корень макета как LinearLayout или RelativeLayout или попробуйте добавить это динамически на вашем взгляде

FillableLoaderBuilder loaderBuilder = new FillableLoaderBuilder(); 
    fillableLoader = loaderBuilder 
    .parentView((FrameLayout) rootView) 
    .layoutParams(params) 
    .svgPath(Paths.JOB_AND_TALENT) 
    .originalDimensions(800, 800) 
    .strokeWidth(strokeWidth) 
    .strokeColor(Color.parseColor([Color])) 
    .fillColor(Color.parseColor([Color])) 
    .strokeDrawingDuration([Duration]) 
    .fillDuration([Duration]) 
    .clippingTransform(new PlainClippingTransform()) 
    .build(); 
Смежные вопросы