Android中Style详解

那年仲夏 提交于 2019-12-05 12:42:56

一、android中的style部分属性值介绍

Android平台定义的主题样式:(android 3.0 以前的主题)

android:theme="@android:style/Theme.Dialog"   将一个Activity显示为对话框模式
android:theme="@android:style/Theme.NoTitleBar"  不显示应用程序标题栏
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  不显示应用程序标题栏,并全屏
android:theme="@android:style/Theme.Light"  背景为白色
android:theme="@android:style/Theme.Light.NoTitleBar"  白色背景并无标题栏
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"  白色背景,无标题栏,全屏
android:theme="@android:style/Theme.Black"  背景黑色
android:theme="@android:style/Theme.Black.NoTitleBar"  黑色背景并无标题栏
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"    黑色背景,无标题栏,全屏
android:theme="@android:style/Theme.Wallpaper"  用系统桌面为应用程序背景
android:theme="@android:style/Theme.Wallpaper.NoTitleBar"  用系统桌面为应用程序背景,且无标题栏
android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"  用系统桌面为应用程序背景,无标题栏,全屏
android:theme="@android:style/Translucent" 半透明效果
android:theme="@android:style/Theme.Translucent.NoTitleBar"  半透明并无标题栏
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"  半透明效果,无标题栏,全屏
android:theme="@android:style/Theme.Panel"

Android平台定义了三种字体大小:

android:textSize = "?android:attr/textAppearanceLarge"
android:textSize ="?android:attr/textAppearanceMedium"
android:textSize ="?android:attr/textAppearanceSmall"

 

Android字体颜色:

android:textColor="?android:attr/textColorPrimary"
android:textColor="?android:attr/textColorSecondary"
android:textColor="?android:attr/textColorTertiary"
android:textColor="?android:attr/textColorPrimaryInverse"
android:textColor="?android:attr/textColorSecondaryInverse"

 

AndroidProgressBar样式:

style="?android:attr/progressBarStyleHorizontal"
style="?android:attr/progressBarStyleLarge"
style="?android:attr/progressBarStyleSmall"
style="?android:attr/progressBarStyleSmallTitle"

 

分隔符

横向: <View
android:layout_width="fill_parent"
android:layout_height="1dip"
android:background="?android:attr/listDivider" />
纵向: <View android:layout_width="1dip"
android:layout_height="fill_parent"
android:background="?android:attr/listDivider" /

 

android中的CheckBox样式  

style="?android:attr/starStyle"


类似标题栏效果的TextView
style="?android:attr/listSeparatorTextViewStyle"

其它有用的样式
android:layout_height="?android:attr/listPreferredItemHeight"
android:paddingRight="?android:attr/scrollbarSize"
style="?android:attr/windowTitleBackgroundStyle"
style="?android:attr/windowTitleStyle"
android:layout_height="?android:attr/windowTitleSize"
android:background="?android:attr/windowBackground"

 

修改Activity的标题栏样式

如在styles.xml中增加
<resources> 
    <style name="AutoWindowTitleBackground"> 
        <item name="android:background">#778899</item> 
    </style> 
    <style name="autoWindowTitlebar" parent="android:Theme"> 
        <item name="android:windowTitleSize">32dp</item>
        <item name="android:windowTitleBackgroundStyle">@style/AutoWindowTitleBackground</item>
    </style> 
</resources>

二、style的应用

1、应用实例

 第一步:values目录下创建styles.xml,代码如下:   

     <resources>   

         <style name="My" parent="android:Widget">   

             <item name="android:background">mycolor写上十六进制颜色</item>  

         </style>   

     </resources>

第二步:因为是系统属性,直接就可以在任意一个view中使用了

   <TextView   

         style="@style/My"  

         android:layout_width="wrap_content"  

       android:layout_height="wrap_content"/>  

2、常用的系统属性值

android : background

android : textSize

android : textColor

android : windowTitleSize 标题字体大小

android : windowTitleBackGroundStyle 标题背景样式  注:其值为一个style,即@style/...

android : windowContentOverlay = @drawalbe/ncolor 前景图(一般设置为透明)

android: wndowNoTitle

注:自定义标题栏,无法改变标题栏的样式,只能改变标题栏的布局

3、自定义属性值

自定义的属性要经过两个步骤才可以使用

1.values目录下创建一个attrs.xml文件,以如下方式声明 <attr name="myname" format="String" /> 

2.在一个styleitem中以如下方式引用 <item name="myname">"我的名字"</item>

3.经过上两步就可以在自己的View中使MyView(Context context, AttributeSet attrs,int myStyle) {   

             super(context, attrs, defStyle);            

TypedArray a =   context.obtainStyledAttributes( attrs, R.styleable.TestView, myStyle, 0);  

... ...//这个a中就存放了自定义的属性

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!