【android】style和theme

一、style

1、style是针对窗体元素级别的,改变指定控件或者Layout的样式

2、style有继承,覆盖

3、style定义,在res/styles.xml中定义

Android系统的themes.xml和style.xml(位于系统源代码frameworks\base\core\res\res\values\)包含了很多系统定义好的style,建议在里面挑个合适的,然后再继承修改。

<?xml version="1.0" encoding="UTF-8"?> 
<resources> 
 <style name="TextView"> 
  <item name="android:textSize">18sp</item> 
  <item name="android:textColor">#008</item> 
  <item name="android:shadowColor">@android:color/black</item> 
  <item name="android:shadowRadius">2.0</item> 
 </style> 
   
 <style name="EditText"> 
  <item name="android:shadowColor">@android:color/black</item> 
  <item name="android:shadowRadius">1.0</item> 
  <item name="android:background">@android:drawable/btn_default</item> 
  <item name="android:textAppearance">?android:attr/textAppearanceMedium</item> 
 </style> 
   
    <style name="Button"> 
        <item name="android:background">@android:drawable/edit_text</item> 
        <item name="android:textAppearance">?android:attr/textAppearanceMedium</item> 
    </style> 
</resources>

二、theme

1、Theme是针对窗体级别的,改变窗体样式;

2、定义位置和方式与style一样,都在res/styles.xml文件中,也可以自己定义在res/theme.xml文件中,区别是theme的item的name数固定的,值可变

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomTheme">
    <!-- Window attributes -->    
<item name="windowBackground">@android:drawable/screen_background_dark</item>    
<item name="windowFrame">@null</item>    
<item name="windowNoTitle">false</item>    
<item name="windowFullscreen">false</item>    
<item name="windowIsFloating">false</item>    
<item name="windowContentOverlay">@android:drawable/title_bar_shadow</item>    
<item name="windowTitleStyle">@android:style/WindowTitle</item>    
<item name="windowTitleSize">25dip</item>    
<item name="windowTitleBackgroundStyle">@android:style/WindowTitleBackground</item>    
<item name="android:windowAnimationStyle">@android:style/Animation.Activity</item> 
</style>
</resources>

使用,main.xml

<?xml version="1.0" encoding="utf-8"?>   
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
    android:orientation="vertical" android:layout_width="fill_parent"   
    android:layout_height="fill_parent">   
    <TextView android:layout_width="fill_parent"   
        android:layout_height="wrap_content" android:text="@string/hello"   
        style="@style/TextView" />   
    <EditText android:id="@+id/EditText01" android:layout_height="wrap_content"   
        style="@style/EditText" android:layout_width="fill_parent"   
        android:text="类似Button的EditText"></EditText>   
    <EditText android:id="@+id/EditText02" android:layout_height="wrap_content"   
        android:layout_width="fill_parent" android:text="普通的EditText"></EditText>   
    <Button android:id="@+id/Button01" android:layout_height="wrap_content"   
        style="@style/Button" android:layout_width="fill_parent" android:text="类似EditText的Button"></Button>   
</LinearLayout>
原文地址:https://www.cnblogs.com/549294286/p/2636172.html