样式(style):
理解:
在写布局时,少不了会出现多行同样的代码,这时候可以把这些同样的代码放在style.xml中定义成一个Style,
之后在布局文件中使用@style/style_name统一引用
作用:
复用视图标签属性
系统样式:
使用系统样式:@android:style/xxx
主题(theme):
理解:
主题的本质也是style
在style.xml中定义,在manifest.xml中引用
作用:
复用视图标签属性
目标:
针对整个应用或某个activity的界面
系统常用主题:
!!!! @android:style/Theme.AppCompat.Light.NoTitleBar:没有标题
@android:style/Theme.AppCompat.Light.NoTitleBar.Fullscreen:全屏
@android:style/Theme.Dialog:对话框
例子:我们有三行TextView,除文字外,其余都相同。
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@android:drawable/star_big_on"
android:text="第三行"
android:gravity="center_vertical"/>
我们可以在在values文件里面的style里添加样式:
<style name="myStyle">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:drawableLeft">@android:drawable/star_big_on</item>
<item name="android:gravity">center_vertical</item>
</style>
之后可以将布局改为:
<TextView
style="@style/myStyle"
android:text="第三行"
/>
即可。
顺便:
强调一点:在配置文件的theme属性中会经常用到这个
@android:style/Theme.AppCompat.Light.NoTitleBar:没有标题
将 android:theme="@style/AppTheme"中的属性修改未上面的某个