zoukankan      html  css  js  c++  java
  • 【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>
  • 相关阅读:
    中国剩余定理(CRT) & 扩展中国剩余定理(ExCRT)总结
    各种求逆元
    A*(A_star)搜索总结
    线段树总结
    C++的STL
    Unable to make the session state request to the session state server处理方法
    判断UserAgent是否来自微信
    VS2010 EntityFramework Database First
    VS2010类似Eclipse文件查找功能-定位到
    Newtonsoft.Json随手记
  • 原文地址:https://www.cnblogs.com/549294286/p/2636172.html
Copyright © 2011-2022 走看看