Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 435
#1

Почему работает? - Программирование Android

04.01.2015, 23:20. Просмотров 303. Ответов 3
Метки нет (Все метки)

Всем привет. Недавно начал изучать Android, и вот возник вопрос. Пишу в Eclips'е, при создании проекта создается две папки appcompat_v7 и папка самого проекта, у меня есть такая строка кода:
XML
1
<item name="android:background">@drawable/abc_item_background_holo_dark</item>
файл abc_item_background_holo_dark изначально находился в папке appcompat_v7, но я скопировал его себе в папку проекта. При запуске и на Android 4.2 и на 2.3.4, все работает отлично. И вот я удалил этот файл из папки проекта. Думал после этого даже не скомпилится, но мало того что оно скомпилировалось, так еще и работало без изменений. В чем дело?
Вот что думаю я. При создании .apk файла все ресурсы идут в него, это да, но вот почему работает строка @drawable/abc_item_background_holo_dark, даже если этот файл не в папке с проектом.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2015, 23:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему работает? (Программирование Android):

Почему не работает setTop() - Программирование Android
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ...

Почему WebView не работает - Программирование Android
Скажите в чём дело не так вот прикрепил скриншот:

Почему .setBackground не работает? - Программирование Android
У меня кнопки представляют собой TextView'ы, на которых по умолчанию выставлены соотв. рисунки, но при попытке изменить их(на любые) при...

Почему не работает GET запрос? - Программирование Android
Maxens, А что происходит? Ошибка? Исключение?

Почему оператор сравнения не работает? - Программирование Android
Здравствуйте, Простой вопрос, очень простой, но ввел в ступор Есть стринговая переменная, которая берется из текстового поля....

Почему здесь не работает Intent? - Программирование Android
Intent берет значение по умолчанию, а не то, которое в классе Touch подскажите почему? package ru.lkja.fx; import java.util.Timer;...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
04.01.2015, 23:26 #2
Система построения знает где искать abc_item_background_holo_dark и включит его в apk файл во время сборки. Не нужно копировать подобные файлы себе в проект.
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 435
04.01.2015, 23:34  [ТС] #3
Kastaneda, то есть я могу использовать любые файлы из compile with версии и они попадут в apk и будут корректно отображаться на других версиях (даже ранних)?
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
04.01.2015, 23:54 #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от xSCJx Посмотреть сообщение
и будут корректно отображаться на других версиях (даже ранних)?
Нет, там некоторые ресурсы не поддерживаются на ранних версиях. Мне IDE подсказывает (типа это досупно только в API 14 и выше, а у тебя API 11). Поэтому, если IDE не подсказывает, то лучше проверять совместимость, если не уверен.

Цитата Сообщение от xSCJx Посмотреть сообщение
и они попадут в apk
apk - это по сути zip архив. Его можно zip'ом открыть и посмотреть что там лежит, например в папке drawable.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2015, 23:54
Привет! Вот еще темы с ответами:

Почему в EditText не работает html тэг <strike>? - Программирование Android
Добрый вечер, Почему не работает конструкция: Spanned s= Html.fromHtml(&quot;&lt;strike&gt;my test text&lt;/strike&gt;&quot;); ...

RSS-читалка - работает на эмуляторе, не работает на реальном девайсе - Программирование Android
День добрый. Есть несложная читалка на основе вот этой вот, для парсинга используется Android SAX. Все прекрасно работает на эмуляторе, но...

Стандартная функция delete в Eclipse работает а в AndroidStudio не работает - Программирование Android
case R.id.btnDelete: {//Кнопка удаление последнего символа ...

Socket.io (прослушивание события работает на Desktop и не работает на Android) - Программирование Android
Есть метод, прослушивающий событие сервера по soket.io (import io.socket.client.Ack; import io.socket.client.IO; import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.01.2015, 23:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru