2012-08-27 4 views
3

행에 대해 사용하는 레이아웃이 ListView입니다. 어떤 장소에서는 레이아웃을 '밝은'스타일과 일부 장소에서 '어둡게'표시해야합니다. Android 스타일, 테마 등을 사용하여 어떻게이 작업을 수행 할 수 있습니까?전체 레이아웃 스타일 지정

나는 스타일의 개념을 이해하지만 그것들은 단일 요소에만있는 것처럼 보입니다. 그것들은 스타일로 요소에 적용되는 속성 집합을 정의하게합니다. 내가 뭘하려는 것은 다음과 같은 속성을 정의 할 수 있습니다 :

  • 자막 텍스트 색상 (TextView 1에 적용)

    • 제목 텍스트 색상을
    • 배경 (TextView 2에 적용) (부모 레이아웃에 적용)
  • 답변

    5

    set a style programatically이 가능하지 않으므로 테마를 만들고 있는데이 테마는 필요한 곳의 활동에 적용됩니다.

    는 속성이

    styleable 지금처럼 res/values/attrs.xml 속성을 추가 만들기 :

    <declare-styleable name="MyTheme"> 
        <attr name="titleColor" format="color" /> 
        <attr name="subtitleColor" format="color" /> 
        <attr name="backgroundDrawable" format="reference" /> 
    </declare-styleable> 
    

    MyTheme

    아무 관련이 필요하지 않는 것 같습니다. 나는 그 속성들에 대한 네임 스페이스 일 뿐이라고 생각한다.

    res/values/styles.xml에서 스타일

    만들기 :

    <style name="MyTheme.LightRows"> 
        <item name="titleColor">@color/black</item> 
        <item name="subtitleColor">@color/grey</item> 
        <item name="backgroundDrawable">@drawable/cell_bg</item> 
    </style> 
    

    AndroidManifest.xml에서 활동

    스타일을 적용 :

    <activity android:name=".view.activity.LightActivity" 
          android:theme="@style/MyTheme.LightRows" /> 
    
    android:textColor="?attr/titleColor" 
    
    : 참조 스타일리스트 행 (또는 무엇이든)에 사용되는 레이아웃에서

    속성