2012-06-27 6 views
3

내 app에서 font에 대해 여러 스타일을 만들었습니다.android : textAppearance 속성을 사용하여 textColor를 설정하십시오.

어떻게 뷰에 이러한 스타일을 추가 할 수 있습니까? - 1) 스타일 속성 사용 2) textAppearance 사용.

보기에 다른 속성 (여백, 패딩, 최소 너비 등 -보기에 2 가지 스타일을 지정할 수 없음)이있을 수 있으므로 스타일을 사용할 수 없습니다. 따라서 텍스트 관련 속성을 별도로 지정해야하지만 android:textColor 여기 나던 작업 :

styles.xml :

<style name="TextAppearance.baseText" parent="@android:style/TextAppearance"> 
    <item name="android:textAppearance">?android:textAppearanceSmall</item> 
    <item name="android:typeface">sans</item> 
    <item name="android:textColor">@android:color/white</item> 
    <item name="android:textSize">15sp</item> 
</style> 

layout.xml가 :

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="65dp" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/backButton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/sometext" 
      android:textAppearance="@style/TextAppearance.baseText"/> 
</RelativeLayout> 

왜 작동 나던? 텍스트 표현에 텍스트 색상을 지정하려면 어떻게해야합니까?

답변

7

작동합니다. 텍스트 색상은 흰색입니다 - 기본 색상과 동일합니다. <item name="android:textColor">#AA6699</item>과 같은 다른 색상을 넣으면 차이가 나타납니다. 둘째, 텍스트 모양으로 텍스트 모양을 설정하려고합니다. doen은 의미가 있습니다. 소문자를 설정하려면 부모 parent="@android:style/TextAppearance.Small을 사용하고 줄을 삭제하십시오. <item name="android:textAppearance">?android:textAppearanceSmall</item> 세 번째는 작은 글자를 넣고 textSize를 추가하려는 것입니다. 의미가 없습니다. 이 시도 , 나를 위해 작동 :

<style name="BaseText" parent="@android:style/TextAppearance.Small"> 
     <item name="android:typeface">sans</item> 
     <item name="android:textColor">#AA7755</item> 
    </style> 

당신이 스타일의 모든 설정하려면 :

<style name="BaseText" parent="@android:style/TextAppearance.Large"> 
     <item name="android:typeface">sans</item> 
     <item name="android:textColor">#AA7755</item> 
    </style> 

    <style name="BaseText.Margins"> 
     <item name="android:layout_margin">10dip</item> 
    </style> 

이 BaseText에서 BaseText.Margins을 상속합니다. 은 그럼 그냥 사용할 수 있습니다 : 그것은 textColor 속성의 대한 Oderik이 코멘트에서 언급 한 바와 같이

<TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TextView" 
     style="@style/BaseText.Margins" /> 
+0

안드로이드에서 제대로 상속합니다. 나는 Api8과 Api15에 BaseText를 시도했다. BaseText.Margins 접근 방식에 관해서 - 저는 알고 있습니다. 그러나 모양이 다른 여러보기가 동일한 textStyle을 갖는 경우 여러 스타일을 만드는 것을 의미합니다.그것은 많은 양의 스타일을 초래할 수 있습니다 - 나는 그것을 피하는 것이 좋습니다. –

+0

좋아, 문제는 스타일이 아니기 때문에 문제는 버튼으로 설정하려는 것입니다. 원하는 것을 얻는 가장 쉬운 방법은 Button 대신 TextView를 배치하고 선택기를 사용하여 클릭 할 수있게 만드는 것입니다. 그럼 당신 스타일을 사용할 수 있습니다 :) – ania

+0

Yeap! 정말 효과가 있었어, 고마워! 솔직히 말해서, 나는 그것이 텍스트 뷰 대신 버튼을 사용한다는 사실 때문에 모든 것이 가능할 것이라고 생각했지만 사실일지도 모르고 그것을 테스트하지도 않았고 버튼이 텍스트 뷰를 확장 시켰기 때문에) –

8

, 단추보기는 기본 값이 있습니다. 이 textColor 값은 textAppearance 속성을 통해 설정되는 값을 대체합니다. 단추 XML에 @null 할 수있는 텍스트 색상 설정

<style name="Application.Button"> 
    <item name="android:textAppearance">@style/Application.Text.Medium.White</item> 
    <item name="android:textColor">@null</item> 
</style> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    style="@style/Application.Button" /> 
  • :

    • 설정 텍스트 색상 스타일로 @null하기 :

      <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      style="@style/Application.Button" 
      android:textColor="@null" /> 
      
    따라서 두 가지 옵션이 있습니다
  • 2

    style: 대신 android:TextAppearance을 사용하여 android:textColor을 설정하려면 다음을 수행해야합니다. TextViewandroid:[email protected]입니다. 나를 위해 텍스트 색상 나던 작업 :

    <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:tools="http://schemas.android.com/tools" 
        android:textAppearance="@style/TextAppearance.AppCompat.Medium.MySubheader" 
        android:textColor="@null" 
        tools:text="Section" /> 
    

    그리고 그것은 당신의 android:TextAppearance

    <style name="TextAppearance.AppCompat.Medium.MySubheader"> 
        <item name="android:fontFamily">sans-serif-medium</item> 
        <item name="android:textSize">16sp</item> 
        <item name="android:textColor">@color/black_54</item> 
    </style> 
    
    관련 문제