Android-스타일 및 테마

style리소스는 형식을 정의하고 UI를 찾습니다. 스타일은 개별보기 (레이아웃 파일 내에서) 또는 전체 활동 또는 애플리케이션 (매니페스트 파일 내에서)에 적용 할 수 있습니다.

스타일 정의

스타일은 레이아웃을 지정하는 XML과 별 개인 XML 리소스에 정의됩니다. 이 XML 파일은res/values/ 프로젝트의 디렉토리이며 <resources>스타일 파일에 필수 인 루트 노드로. XML 파일의 이름은 임의적이지만 .xml 확장자를 사용해야합니다.

다음을 사용하여 파일 당 여러 스타일을 정의 할 수 있습니다. <style>태그이지만 각 스타일에는 스타일을 고유하게 식별하는 이름이 있습니다. Android 스타일 속성은<item> 아래와 같이 태그-

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <style name="CustomFontStyle">
      <item name="android:layout_width">fill_parent</item>
      <item name="android:layout_height">wrap_content</item>
      <item name="android:capitalize">characters</item>
      <item name="android:typeface">monospace</item>
      <item name="android:textSize">12pt</item>
      <item name="android:textColor">#00FF00</item>/> 
   </style>
</resources>
<item>의 값은 키워드 문자열, 16 진수 색상, 다른 리소스 유형에 대한 참조 또는 스타일 속성에 따라 다른 값이 될 수 있습니다.

스타일 사용

스타일이 정의되면 다음을 사용하여 XML 레이아웃 파일에서 사용할 수 있습니다. style 다음과 같은 속성-

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >

   <TextView
      android:id="@+id/text_id"
      style="@style/CustomFontStyle"
      android:text="@string/hello_world" />

</LinearLayout>

Android Style과 관련된 개념을 이해하려면 Style Demo Example을 확인하십시오 .

스타일 상속

Android는 웹 디자인의 CSS 스타일 시트와 매우 유사한 방식으로 스타일 상속을 지원합니다. 이를 사용하여 기존 스타일에서 속성을 상속 한 다음 변경하거나 추가하려는 속성 만 정의 할 수 있습니다.

사용자 정의 테마를 구현하려면 MyAndroidApp / res / values ​​/ themes.xml을 만들거나 편집하고 다음을 추가하십시오.

<resources>
   ...
   <style name="MyCustomTheme" parent="android:style/Theme">
   <item name="android:textColorPrimary">#ffff0000</item>
   </style>
   ...
</resources>

AndroidManifest.xml에서 스타일을 지정하려는 활동에 테마를 적용하십시오.

<activity
   android:name="com.myapp.MyActivity"
   ...
   android:theme="@style/MyCustomTheme"
   />

새 테마가 활동에 적용되고 텍스트는 이제 밝은 빨간색입니다.

테마 속성에 색상 적용

그런 다음 사용자 지정 테마에 <item> 요소를 추가하여 창 배경 및 기본 텍스트 색과 같은 일부 테마 속성에 색 리소스를 적용 할 수 있습니다. 이러한 속성은 styles.xml 파일에 정의되어 있습니다. 예를 들어, 창 배경에 사용자 지정 색상을 적용하려면 MyAndroidApp / res / values ​​/ styles.xml 파일에 정의 된 다음 두 개의 <item> 요소를 사용자 지정 테마에 추가합니다.

<resources>
   ...
   <style name="MyCustomTheme" ...>
      <item name="android:windowBackground">@color/my_custom_color</item>
      <item name="android:colorBackgroundCacheHint">@color/my_custom_color</item>
   </style>
   ...
</resources>

단추가있는 사용자 지정 나인 패치 사용

나인 패치 드로어 블은 시각적 무결성을 유지하면서 너비와 높이를 조정할 수있는 특별한 종류의 이미지입니다. 모든 드로어 블 유형을 사용할 수 있지만 나인 패치는 Android 버튼의 모양을 지정하는 가장 일반적인 방법입니다.

나인 패치 버튼 샘플

9 패치 버튼을 만드는 단계

  • 이 비트 맵을 /res/drawable/my_nine_patch.9.png로 저장합니다.
  • 새로운 스타일 정의
  • 사용자 정의 테마의 buttonStyle 속성에 새 단추 스타일을 적용하십시오.

Define a new Style

<resources>
   ...
      <style name="MyCustomButton" parent="android:Widget.Button">
      <item name="android:background">@drawable/my_nine_patch</item>
      </style>
   ...
</resources>

Apply the theme

<resources>
   ...
      <style name="MyCustomTheme" parent=...>
         ...
         <item name="android:buttonStyle">@style/MyCustomButton</item>
      </style>
   ...
</resources>

안드로이드 테마

Style의 개념을 이해했으면 좋겠으니 이제는 Theme. 테마는 개별보기가 아닌 전체 활동 또는 애플리케이션에 적용된 Android 스타일 일뿐입니다.

따라서 스타일을 테마로 적용하면 View활동 또는 응용 프로그램에서 지원하는 각 스타일 속성을 적용합니다. 예를 들어, 동일한 것을 적용 할 수 있습니다.CustomFontStyle 활동에 대한 테마로 스타일을 지정한 다음 그 안의 모든 텍스트 Activity 녹색 고정 폭 글꼴이 있습니다.

애플리케이션의 모든 활동에 대한 테마를 설정하려면 AndroidManifest.xml 파일 및 편집 <application> 포함 할 태그 android:theme스타일 이름이있는 속성. 예를 들면-

<application android:theme="@style/CustomFontStyle">

그러나 애플리케이션에서 하나의 활동에만 테마를 적용하려면 android : theme 속성을 <activity> 태그에만 추가하십시오. 예를 들면-

<activity android:theme="@style/CustomFontStyle">

직접 사용하거나 다음을 사용하여 상속 할 수있는 Android에서 정의한 여러 기본 테마가 있습니다. parent 다음과 같은 속성-

<style name="CustomTheme" parent="android:Theme.Light">
   ...
</style>

안드로이드 테마와 관련된 개념을 이해하기 위해 테마 데모 예제를 확인할 수 있습니다 .

색상 팔레트 스타일 지정

레이아웃 디자인은 색상을 기반으로 구현할 수 있습니다. 예를 들어 다음 디자인은 색상 (파란색)을 기반으로 디자인되었습니다.

위의 레이아웃은 style.xml 파일을 기반으로 설계되었습니다. res/values/

<resource>
   <style name="AppTheme" parent="android:Theme.Material">	
      <item name ="android:color/primary">@color/primary</item>
      <item name ="android:color/primaryDark">@color/primary_dark</item>
      <item name ="android:colorAccent/primary">@color/accent</item>
   </style>
<resource>

기본 스타일 및 테마

Android 플랫폼은 애플리케이션에서 사용할 수있는 다양한 스타일 및 테마 컬렉션을 제공합니다. 사용 가능한 모든 스타일에 대한 참조는R.style수업. 여기에 나열된 스타일을 사용하려면 스타일 이름의 모든 밑줄을 마침표로 바꿉니다. 예를 들어 "@android : style / Theme.NoTitleBar"로 Theme_NoTitleBar 테마를 적용 할 수 있습니다. Android 스타일 및 테마에 대한 다음 소스 코드를 볼 수 있습니다.

  • Android 스타일 (styles.xml)

  • Android 테마 (themes.xml)