У меня есть приложение для Android, которое вычисляет коэффициенты покера (Shufflebot, если вам интересно). Он отображает карты на экране, которые должны быть достаточно большими, чтобы задействовать. Карта оказывается классом CardView и объявлены в макете следующим образом:Можно ли определить разные стили для разных размеров экрана?
<com.shufflebot.view.CardView style="@style/CardView"
android:id="@+id/flop1"></com.shufflebot.view.CardView>
Соответствующий стиль «CardView» объявлен в RES/значениях/styles.xml.
<style name="CardView">
<item name="android:layout_width">40dp</item>
<item name="android:layout_height">56dp</item>
<item name="android:layout_marginRight">1dp</item>
</style>
CardView рисует в любых размерах, которые ему даны. Существует много свободного места, когда приложение работает на планшете, поэтому я хотел бы использовать его, делая карты больше и, следовательно, легче использовать.
Можно ли определить альтернативные styles.xml для этого? например могу ли я определить res/values-xlarge/styles.xml (для Android 3.2) и res/values-sw800dp/styles.xml, где я могу определить альтернативную версию моего стиля? Еще лучше, может ли этот файл содержать только один модифицированный стиль, в то время как Android переходит к исходным styles.xml для других значений?
Когда я пытаюсь сделать это в Eclipse, я вижу красные подчеркивания, предлагая мне, что это не поддерживается.
Альтернативой является то, что я могу определить несколько версий cards.xml, например. layout-xlarge/cards.xml, но это похоже на большую часть затрат на обслуживание, учитывая, что остальная часть макета одинакова, и это просто размер одного элемента, который необходимо изменить.
Итак, каков наилучший способ масштабирования одного, но не всех таких элементов?
Я знаю, что могу использовать разные макеты, но я бы предпочел использовать другой стиль с тем же макетом. Помимо размера одного конкретного вида, макет идентичен.Необходимость вырезать, вставлять и поддерживать несколько идентичных макетов просто не подходит для чего-то, что должно быть в стиле стиля. – locka
@locka: «Создайте новый каталог в каталоге res/directory и назовите его с помощью формата: - . - это стандартное имя ресурса (например, drawable или layout)." Я полагаю, что это означает, что документация просто использует «layout» и «drawable» в качестве примера, а также работает с «значениями». –
unholysampler
Хотелось бы, чтобы это произошло, но пока мои эксперименты не появляются. – locka