Скрытие ресурсов android.R в Android Studio 1.3+ автозаполнение

Можно ли настроить Android Studio для отображения только ресурсов @drawable, находящихся в папке проекта?

Проект, над которым я работаю, является отраслевым проектом и редко требует, чтобы я использовал ресурсы R.

enter image description here

Ответ 1

Просматривая раздел "Завершение кода AS", я не нашел ни одного параметра, который позволяет скрыть ресурсы SDK и использовать ресурсы приложения /lib:

введите описание изображения здесь

Недавно реализованная функция, упомянутая StefMa, вероятно, не поможет вам, поскольку она работает по-другому: она позволяет разработчикам библиотек скрывать некоторые ресурсы из пакета aar и отображать только выбранную часть ресурсов, например, общедоступных ресурсов. Крис Банес сделал хорошее введение в эту функцию здесь.

Ответ 2

Я не думаю, что вы можете это сделать, но разработчики библиотеки могут скрывать ресурсы в своих дистрибутивах aar.

Итак, вы зависите от разработчиков библиотек, чтобы сделать это за вас. К счастью, последняя библиотека поддержки Android уже должна была сделать это для вас.

Способ, которым разработчики библиотеки могут скрывать ресурсы в своей библиотеке:

  • Создайте новую папку на том же уровне, что и res, называемый res-public (имя не важно) с подпапкой под названием values:
src
    main
         java
         res
         res-public
             values
  1. В этой папке создайте новый файл с именем public.xml, где вы определяете все ресурсы, которые вы хотите публиковать, с их name, а затем type
<resources>
    <public type="drawable" name="btn_login"/>
</resources>
  1. Затем убедитесь, что ссылаетесь на эту новую папку в файле build.gradle:
android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    sourceSets {
        main.res.srcDirs 'res', 'res-public'
    }

    defaultConfig {
       ...
    }
}
  1. Убедитесь, что вы используете хотя бы версию 1.3 плагина Gradle
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
    }
}
  1. Скомпилируйте вашу библиотеку в файл aar и включите ее в свой проект. Теперь будет доступен только ресурс btn_login.
    • Посмотрите здесь, как включить локальный файл aar, чтобы вы могли протестировать, не нажимая на репозиторий Maven.