您的位置:首页 > 移动开发 > Android开发

Android之style(样式)和Theme(主题)

2017-09-08 14:50 337 查看
样式和主题显示效果图:



style(样式):



Layout布局文件当中:

<!--自己引用自己定义的样式myTextView_style  -->
<TextView
style="@style/myTextView_style1.myTextView_style2"
android:text="hello worid"/>


styles文件中:

<resources xmlns:android="http://schemas.android.com/apk/res/android">

<!-- myTextView _style1自己定义的样式 -->
<style name="myTextView_style1">
<item name="android:background">#ff00ff</item>
</style>

<!-- 当然你可以使用继承parent继承一个系统样式或者以点(.)的方式继承一个自己的样式 -->
<!-- 我是使用点的方式(.)继承的自己样式 -->
<style name="myTextView_style1.myTextView_style2">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">@android:color/holo_blue_dark</item>
<item name="android:textSize">35sp</item>
</style>

<!-- 我是使用parent继承的系统样式 -->
<style name="myTextView_style3" parent="@android:style/Animation.Dialog">

</style>
</resources>


Theme(主题):



大家注意了主题是在清单文件当中配置的

xml布局文件中:

<!--主题样式测试  如果在清单文件中设置了主题,下面的三个TextVie将是同样的样式 -->
<!--另外注意!主题的测试要在程序启动时候才会出效果  -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="青青大地"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="蓝蓝天空"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="斑斓彩虹"/>


styles样式中:

<!-- 我是自己定义的主题样式 -->
<style name="myAppTheme">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">@android:color/holo_blue_dark</item>
<item name="android:textSize">40dp</item>
<item name="android:background">#00ff00</item>
</style>


android中的style部分属性值介绍:

Android平台定义的主题样式:

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:attr/textAppearanceLarge"
"?android:attr/textAppearanceMedium"
"?android:attr/textAppearanceSmall"

Android字体颜色:

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

Android的ProgressBar样式:

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" />

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>
接着再修改AndroidManifest.xml文件,找到要自定义标题栏的Activity,添加上android:theme值,比如:
<activity android:name=".MainActivity" android:theme="@style/autoWindowTitlebar">

去掉所有Activity界面的标题栏
修改AndroidManifest.xml

在application 标签中添加android:theme=”@android:style/Theme.NoTitleBar”

原文地址:http://blog.sina.com.cn/s/blog_70c759fd01013phv.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  样式和主题 布局