Пример FloatingActionButton работает в Android Studio, но не в Eclipse

Давний пользователь Eclipse-ADT, и я начал изучать Android Studio, так как большинство примеров в Интернете теперь создаются с помощью gradle. Недавно я установил Android Studio на свой компьютер и пробую образцы с сайта developer.android.com, в частности этот: Плавающая кнопка действия

Я импортировал проект в Android Studio, запустил его на своем Nexus 5, все работает нормально. FAB закруглены и имеют тени и все такое.

Теперь из любопытства я попытался построить тот же проект в Eclipse. Итак, я запустил Eclipse, создал новый проект, скопировал и вставил все из папки Application в нужные места, а затем запустил проект на том же устройстве.

Кнопки квадратные.

Глядя в код, следующие строки отвечают за придание кнопкам круглой формы:

Под FloatingActionButton.java

setOutlineProvider(new ViewOutlineProvider() {
        @Override
        public void getOutline(View view, Outline outline) {
            outline.setOval(0, 0, getWidth(), getHeight());
        }
    });

setClipToOutline(true);

Теперь вопрос: почему эти фрагменты кода работают в Android Studio, но не в Eclipse?


person josephus    schedule 09.01.2015    source источник


Ответы (3)


Скорее всего, это связано с тем, какие зависимости есть в вашем проекте.

Используя Gradle, вы можете настроить подстановочные знаки для номеров версий зависимостей, что означает, что ваш проект всегда будет иметь последнюю версию этой библиотеки (к лучшему или к худшему).

С Eclipse-ANT вы, скорее всего, используете загруженные и импортированные вручную библиотеки со статическим номером версии. И конкретная версия, которую вы используете, это компиляция квадратных кнопок.

person CQM    schedule 11.01.2015

Наконец-то заработало. Проблема в том, что файл AndroidManifest.xml, который я скопировал из папки Application/src/main, не имеет минимального SDK и целевой версии SDK, которые определены в файле build.gradle в каталоге /Application. . Я добавил оба, и FAB теперь закруглены с тенями и всем остальным.

Поскольку я не могу наградить себя, я бы дал ответ тому, кто может объяснить дальше или хотя бы указать на что-то, что документирует это изменение.

person josephus    schedule 11.01.2015

Теперь в AndroidStudio вы можете указать большую часть конфигурации манифеста в build.gradle, он сначала будет ссылаться на модуль build.gradle для этих конфигураций, это полезно и необходимо для многих вещей, которые, как я знаю, следующие.

Студия Android и gradle предоставляют вам много новых функций, одна из которых - типы сборки и варианты, с помощью которых вы можете создавать новые варианты вашего одного проекта с гораздо меньшими усилиями, см. В eclipse вам нужно создать совершенно новый проект для другого вкуса вашего проект, в то время как в студии Android вы можете сделать это в одном проекте. Посмотрите, когда вы определяете другой вариант, вы также можете определить некоторые свойства манифеста, которые будут применяться только к этому варианту, например, вы можете изменить имя проекта, имя пакета, минимальный SDK, целевой SDK, версию, разрешение и так далее.

Будет только один манифест, поэтому, если вы объявите несколько вариантов и определите такие изменения, файл build.gradle извлечет эти изменения и применит их к манифесту специально для этого варианта, поэтому ваш манифест будет обновлен для этого варианта.

person Hardik Chauhan    schedule 15.01.2015