Android中样式及主题

简介:

Android应用程序中不可避免的需要使用的样式和主题,样式指定一般指定View的高度、字体、字体颜色、背景,Android里的样荐定义在Style.xml文件里。主题也是一种样式,只不过它是应用在整个Activity或application,而不只是View。两者基本相同,最大的区别就是作用的范围不一样。样式针对的是单个的View控件,主题的范围更广,还是直接开始动手写吧.

自定义的样式及主题

最简单新建一个Android项目都会有一个TextView内容是HelloWorld:

 

1
2
3
4
<TextView
     android:layout_width= "wrap_content"
     android:layout_height= "wrap_content"
      android:text= "@string/hello_world"  />

 

 这个时候我们可以将这些属性写在/res/values/styles.xml中新建的样式中:

1
2
3
4
5
6
<style name= "content_mystyle" >
     <item name= "android:layout_width" >wrap_content</item>
     <item name= "android:layout_height" >wrap_content</item>
     <item name= "android:textColor" >#3A5FCD</item>
     <item name= "android:textSize" >20sp</item>
</style>

  调用:

1
2
3
<TextView
      style= "@style/content_mystyle"
      android:text= "@string/hello_world"  />

 效果如下:

自定义theme:

1
2
3
<style name= "theme_mytheme" >
       <item name= "android:background" ># 080808 </item>
   </style>

Application中调用:

1
2
3
4
5
6
7
   <application
         android:allowBackup= "true"
         android:icon= "@drawable/ic_launcher"
         android:label= "@string/app_name"
         android:theme= "@style/theme_mytheme"
          >
.....

效果如下:

 

系统样式和主题扩展

重新定义个Activity,里面只需要方一个ProgressBar就行,上面的样式是常见的,如果像对话框,进度条这种,有些样式自己也不是很明白的话,直接去sdk中找出来重写一下:

果是修改单个样式直接去styles.xml中找到即可,修改主题的话去themes中找到即可:

ProgressBar原有的样式如下:

1
2
3
4
5
6
7
8
9
10
<style name= "Widget.ProgressBar" >
       <item name= "android:indeterminateOnly" > true </item>
       <item name= "android:indeterminateDrawable" > @android :drawable/progress_medium_white</item>
       <item name= "android:indeterminateBehavior" >repeat</item>
       <item name= "android:indeterminateDuration" > 3500 </item>
       <item name= "android:minWidth" >48dip</item>
       <item name= "android:maxWidth" >48dip</item>
       <item name= "android:minHeight" >48dip</item>
       <item name= "android:maxHeight" >48dip</item>
   </style>

  重写:

1
2
3
4
5
6
7
8
9
10
<style name= "progressBar_myStyle" >
        <item name= "android:indeterminateOnly" > true </item>
        <item name= "android:indeterminateDrawable" > @drawable /progress_medium_white</item>
        <item name= "android:indeterminateBehavior" >repeat</item>
        <item name= "android:indeterminateDuration" > 3500 </item>
        <item name= "android:minWidth" >60dip</item>
        <item name= "android:maxWidth" >60dip</item>
        <item name= "android:minHeight" >60dip</item>
        <item name= "android:maxHeight" >60dip</item>
    </style>

  将progress_medium_white拷贝过来,重写:

 

 

代码如下:

1
2
3
4
<animated-rotate xmlns:android= "http://schemas.android.com/apk/res/android"
     android:drawable= "@drawable/ic_launcher"
     android:pivotX= "50%"
     android:pivotY= "50%" />

布局中调用

1
2
3
4
<ProgressBar
     style= "@style/progressBar_myStyle"
     android:layout_width= "wrap_content"
     android:layout_height= "wrap_content" />

效果如下:

 

主题的就很简单,定义了两个主题,全屏没有标题:

1
2
3
4
5
6
7
8
9
<style name= "test_NoTitleBar" >
     <item name= "android:windowFullscreen" > true </item>
     <item name= "android:background" >#FF1493</item>
     <item name= "android:windowNoTitle" > true </item>
</style>
 
    <style name= "test_child_NoTitleBar"  parent= "@style/test_NoTitleBar" >
     <item name= "android:background" >#FF0000</item>
</style>

 给Activity的主题赋值,效果如下:

周末看博客的都大有可为,大家周末愉快~

本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/4101255.html,如需转载请自行联系原作者

相关文章
|
3月前
|
Android开发 开发者
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
41 1
|
Android开发
Android 自带的字体库、字体样式
Android 自带的字体库、字体样式
1069 0
Android 自带的字体库、字体样式
|
8月前
|
前端开发 Android开发
前端项目实战壹-安卓4.4/6.0无法安装非原生项目无法渲染样式
前端项目实战壹-安卓4.4/6.0无法安装非原生项目无法渲染样式
47 0
|
9月前
|
XML Java Android开发
|
9月前
|
API Android开发 UED
|
9月前
|
XML Android开发 数据格式
|
9月前
|
XML 编解码 API
|
9月前
|
编解码 Android开发
|
9月前
|
XML API Android开发
|
9月前
|
XML 前端开发 Android开发