1

я использовал этот код для поддержки векторных изображений на старых устройствах:VectorDrawableCompat.create не может создать изображение из vector.xml на старых устройствах

VectorDrawableCompat.create(context.getResources(), resId, context.getTheme()); 

Но он не работает в данный момент (я установил несколько обновлений для Android Studio 2.1.1)

Мой Gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

    defaultConfig { 
     minSdkVersion 16 
     targetSdkVersion 23 
     vectorDrawables.useSupportLibrary = true 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 

    dataBinding { 
     enabled = true 
    } 

    aaptOptions { 
     additionalParameters "--no-version-vectors" 
    } 

    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    testCompile 'org.mockito:mockito-core:1.10.19' 
    androidTestCompile 'com.android.support:support-annotations:23.4.0' 
    androidTestCompile 'com.android.support.test:runner:0.4.1' 
    androidTestCompile 'com.android.support.test:rules:0.4.1' 
    androidTestCompile 'org.hamcrest:hamcrest-library:1.3' 
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1' 
    compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'com.android.support:design:23.4.0' 
    compile 'com.android.support:cardview-v7:23.4.0' 
    compile 'com.android.support:recyclerview-v7:23.4.0' 
    compile 'de.hdodenhof:circleimageview:1.3.0' 
    compile 'com.squareup.picasso:picasso:2.5.2' 
    compile 'com.squareup.okhttp:okhttp:2.5.0' 
} 

Пример векторного ресурса:

<vector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:width="24dp" 
     android:height="24dp" 
     android:viewportWidth="24.0" 
     android:viewportHeight="24.0"> 
    <path 
     android:fillColor="#FF000000" 
     android:pathData="M3.9,12c0,-1.71 1.39,-3.1 3.1,-3.1h4L11,7L7,7c-2.76,0 -5,2.24 -5,5s2.24,5 5,5h4v-1.9L7,15.1c-1.71,0 -3.1,-1.39 -3.1,-3.1zM8,13h8v-2L8,11v2zM17,7h-4v1.9h4c1.71,0 3.1,1.39 3.1,3.1s-1.39,3.1 -3.1,3.1h-4L13,17h4c2.76,0 5,-2.24 5,-5s-2.24,-5 -5,-5z"/> 
</vector> 

Он печатает ошибка:

android.content.res.Resources $ NotFoundException: Файл Реза/вытяжка-ИПЧР-v4/ic_insert_link_24.png из XML-ресурса типа XML ID # 0x7f020062 на андроида .content.res.Resources.loadXmlResourceParser (Resources.java:3045) at android.content.res.Resources.loadXmlResourceParser (Resources.java:2992) at android.content.res.Resources.getXml (Resources.java: 1772) вandroid.support.graphics.drawable.VectorDrawableCompat.create (VectorDrawableCompat.java:408)

ли кто знает горячей, чтобы исправить эту ошибку?
P.S. Я знаю, что ImageView и некоторые остальное View s поддерживает VectorDrawableCompat по умолчанию, но мне нужно получить Drawable, чтобы нарисовать его на Canvas

ответ

1

Посмотрите на ошибки должен сказать что-то.

android.content.res.Resources $ NotFoundException: Файл RES/вытяжке-ИПЧР-v4/ic_insert_link_24.png из XML-ресурса типа XML ID # 0x7f020062

вы используете ic_insert_link_24.png это должно нет в drawable folder, поэтому эта ошибка возникает, чтобы поместить ее на drawable folder и проверить ее.

+0

Нет, я использовал все правильно. Но спасибо за ваш ответ, Studio не обновляет ссылки на ресурсы, я перестроил весь проект и стал работать :) –

+0

Просто я не видел, что у него не было «dp» postfix в названии –

Смежные вопросы