2012-03-01 2 views
1

여기에 문제가 있습니다. 관련 .xml 파일에서 다양한보기를 사용자 정의하기 위해 사용자 정의 테마 및 스타일을 정의했습니다. 여기에 몇 가지 코드 추출물은 다음과 같습니다Android - 맞춤 스타일을 조정하기 위해 속성 사용

themes.xml :

... 
<style name="Legacy" parent="android:Theme.NoTitleBar"> 
    <item name="android:buttonStyle">@style/Legacy.Button</item> 
    ... 
</style> 

styles.xml :

... 
<style name="Legacy.Button" parent="@android:style/Widget.Button"> 
    <item name="android:textColor">#ffffff</item> 
    <item name="android:background">@drawable/button_selector_blue</item> 
    <item name="android:textSize">15dp</item> 
</style> 

의 내가 기존에 내 응용 프로그램의 테마를 설정한다고 가정 해 봅시다. 레이아웃에서 Button을 사용하면 사용자 정의 기본 매개 변수 (흰색 텍스트, 배경은 @ drawable/button_selector_blue 등)가 나타납니다. 이제

의 내가 이러한 매개 변수는 텍스트 크기를 위해 저축 유지하려는 가정 해 봅시다 :

... 
<attr name="titleSize" format="reference|dimension" /> 
: 나는 attrs.xml이에 titleSize 속성에 정의 된 것보다 큰 텍스트 크기, 일부 버튼이 싶습니다

및 themes.xml 파일의 각 테마에 대해 설정된 값은 다음과 같습니다.

그래서 내 레이아웃과 같이 포함됩니다 : java.lang.UnsupportedOperationException가 : 차원으로 변환 할 수 없습니다 :

<Button 
    android:id="@+idmyButtonId" 
    android:drawableRight="@drawable/aDrawable" 
    android:text="@string/someText" 
    android:textSize="?titleSize" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"> 
</Button> 

내 응용 프로그램을 시작할 때를 나는 다음과 같은 오류 얻을 유형 = 0x2로를

따라서 적어도 속성을 사용하여 사용자 정의 스타일을 조정할 수는 없습니다. 그런 일이 가능한가? 그렇지 않은 경우, 그러한 결과를 얻기 위해 무엇을 사용합니까?

다른 테마 중에서 선택할 수있는 기능을 사용자에게 제공하여 추가 ButtonWithLargeText 스타일을 정의하고 레이아웃에 직접 사용할 수는 없습니다.

도움 주셔서 감사합니다.

+0

을! !! !! http://stackoverflow.com/questions/17103894/overriding-referenced-style-attributes – toobsco42

답변

0

마침내 작동하게되었습니다. attrs.xml에서 내 제목의 크기를 정의하는 대신 dimens.xml을 사용했습니다. 이제 다음 작품 :

<Button 
    android:id="@+idmyButtonId" 
    android:drawableRight="@drawable/aDrawable" 
    android:text="@string/someText" 
    android:textSize="@dimen/titleSize" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"> 
</Button> 

내가 이것을 사용하여 버튼에 (내 styles.xml에 정의) 내 일반 텍스트 크기를 얻을 수 있지만 : 나는 여기에 비슷한 일을하고있는 중이 야

<Button 
    android:id="@+id/idRegularButton" 
    android:text="@string/regularSizeText" 
    android:layout_width="wrap_content" android:layout_height="wrap_content"> 
</Button> 
관련 문제