Рефакторинг Android - Лучшая практика - рисованные формы и цвета.xml - PullRequest
2 голосов
/ 24 мая 2011

Это может звучать глупо, но я могу думать о причинах за и против.

Должен ли я преобразовать два цвета из моего градиента drawable / shape.xml в colors.xml?

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient 
        android:startColor="#FFFFFF" 
        android:endColor="#CCCCCC"
        android:angle="270" />
    <stroke 
        android:width="3dp" 
        color="@color/transparent" />
    <corners 
        android:radius="13dp" />
    <padding 
        android:left="10dp" 
        android:top="10dp"
        android:right="10dp" 
        android:bottom="10dp" />
</shape>

Хранение в drawable / shape.xml показывает, что это одна сущность (кнопка) и позволяет ей оставаться в безопасности в одном месте.Перемещение его в colors.xml позволяет обмениваться этими цветами с другим ресурсом, возможно, если я создавал тему или стиль?Но тогда, когда я смотрю на colors.xml, как я узнаю, что они объединяются в градиентный цвет?

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

Я попытался посмотреть Source для приложения IO Sched: linky , чтобы увидеть, что сделали сотрудники Google, но я не могу найти, чтобы они создавали фигуры.

Ответы [ 2 ]

1 голос
/ 24 мая 2011

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

Например, если у вас есть что-то вроде accent_color_1 и accent_color_1_darker, следует предположить, чтоможет быть цветовая шкала между этими двумя цветами, используемыми в приложении.Тем не менее, для вас было бы менее разумно выбирать цветовую шкалу, например, accent_color_1 и accent_color_2.

. В конце концов, это действительно вопрос личных или командных предпочтений.

1 голос
/ 24 мая 2011

Я предпочитаю определять все цвета в отдельном XML-файле.

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

Если вы можете быть уверены, что собираетесь использовать этот конкретный цвет только в одном месте, я думаю, этопросто дело вкуса.

...