zoukankan      html  css  js  c++  java
  • 021_02UI之自定义主题和样式

      在Android的应用的资源文件中有一个style.xml文件,可以对某个类型的组件指定大致相似的格式,比如字体、颜色、背景色等。这样可以不必为某个View组件去重复指定这些属性,而且有利于后期的代码修改和维护。Style格式可以被多个View组件所使用,被需要这一类样式集合的View组件所使用。

      与样式非常相似,主题资源的xml文件通常也放在/res/values目录下,主题一般为整个应用或者某个Activity的样式,换句话说主题是针对窗体级别或整个应用程序的样式

      主题的设置有两种方式

        (1)在AndroidMainfest.xml中为Activity指定主题

        (2)在Activity创建时调用 setTheme方法给某个Activity添加主题

    /res/values/styles.xml 为主题和两个textView设置的style

     1 <resources>
     2 
     3     <!--
     4         Base application theme, dependent on API level. This theme is replaced
     5         by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
     6     -->
     7     <style name="AppBaseTheme" parent="android:Theme.Light">
     8         <!--
     9             Theme customizations available in newer API levels can go in
    10             res/values-vXX/styles.xml, while customizations related to
    11             backward-compatibility can go here.
    12         -->
    13     </style>
    14             
    15     <style name="mystyle">
    16         <item name="android:layout_width">wrap_content</item>
    17         <item name="android:layout_height">wrap_content</item>
    18         <item name="android:textColor">#FF0000FF</item>
    19         <item name="android:textSize">20sp</item>
    20         <item name="android:background">#8800FF00</item>
    21         <item name="android:paddingTop">10dp</item>
    22         <item name="android:paddingRight">20dp</item>
    23         <item name="android:paddingLeft">20dp</item>
    24         <item name="android:paddingBottom">10dp</item>
    25         <item name="android:layout_marginLeft">50dp</item>
    26         <item name="android:layout_marginTop">20dp</item>
    27         <item name="android:textStyle">bold</item>
    28     </style>
    29 
    30      <style name="mystyle2"  parent="mystyle">        
    31         <item name="android:textColor">#FF0000</item>    
    32     </style>
    33       
    34      <style name="MyTheme" >
    35          <item name="android:colorBackgroundCacheHint">@null</item>
    36         <!--<item name="android:windowIsTranslucent">true</item>
    37           <item name="android:windowNoTitle">true</item>
    38          <item name="android:windowFullscreen">true</item> -->
    39         <item name="android:windowBackground">@drawable/fun1</item>       
    40      </style> 
    41      
    42 </resources>

    本例采用setTheme方法添加主题

     1 package com.example.day21_02styleandtheme;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.view.Menu;
     6 import android.view.MenuItem;
     7 
     8 public class MainActivity extends Activity {
     9 
    10     @Override
    11     protected void onCreate(Bundle savedInstanceState) {
    12         super.onCreate(savedInstanceState);
    13         setTheme(R.style.MyTheme);
    14         setContentView(R.layout.activity_main);
    15     }
    16 }
     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:paddingBottom="@dimen/activity_vertical_margin"
     6     android:paddingLeft="@dimen/activity_horizontal_margin"
     7     android:paddingRight="@dimen/activity_horizontal_margin"
     8     android:paddingTop="@dimen/activity_vertical_margin"
     9     tools:context="com.example.day21_02styleandtheme.MainActivity" 
    10     android:orientation="vertical">
    11 
    12     <TextView
    13         style="@style/mystyle2"
    14         android:text="功能1" />
    15      <TextView
    16         style="@style/mystyle"
    17         android:text="功能2" />          
    18 </LinearLayout>

    效果图:

    物随心转,境由心造,一切烦恼皆由心生。
  • 相关阅读:
    SSM 框架-05-详细整合教程(Eclipse版)(Spring+SpringMVC+MyBatis)
    SSM 框架-04-使用maven创建web项目
    SSM 框架-03-MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建
    SSM 框架-02-MyEclipse 2017 安装与破解
    什么是J2EE
    Web前端和后端开发的区别和要求
    SSM 框架集-01-详细介绍-入门问题篇
    MUI框架-11-MUI前端 +php后台接入百度文字识别API
    MUI框架-10-MUI 数据交互-跳转详情页面
    MUI框架-09-MUI 与后台数据交互
  • 原文地址:https://www.cnblogs.com/woodrow2015/p/4547713.html
Copyright © 2011-2022 走看看