1、样式资源:
存放地点:/ res/ values
根节点:<resource></resource>
如何定义一个样式:
<resources>
<!-- 定义样式,指定字体大小、颜色 -->
<style name ="style1">
<item name="android:textSize">20sp</item>
<item name="android:textColor">#00d</item>
</style>
<!-- 定义样式,指定字体大小、颜色 -->
<style name ="style1" parent="@style/style1">
<item name="android:background">#ee6</item>
<item name="android:padding">8dp</item>
<!-- 覆盖父样式中指定的属性 -->
<item name="android:textColor">#000</item>
</style>
</resources>
如何在控件中调用样式:
<EditText
.....
style="@style/style1"
/>
2、主题资源:
存放地点:/ res/ values
根节点:<resource></resource>
主题与样式区别:
1)主题不能用于单个View控件,主题应对整个应用中所有Activity起作用,或对指定的Activity起作用;
2)主题定义的格式应该是改变窗口外观的格式。
如何定义一个主题:需求,给所有窗口添加边框、背景:
定义 my_style.xml
<resources>
<!-- 定义样式,指定字体大小、颜色 -->
<style name ="CrazyTheme" parent="@andoird:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowFrame">@drawable/window_border</item>
<item name="android:windowBackground">@drawable/star</item>
</style>
</resources>
其中window_border.xml 文件如下:
<shape xmlns:android="http://schemas.android.com/apk/android" android:shape="rectangle">
<!-- 设置填充颜色 -->
<solid android:color="@0fff"/>
<!-- 设置四周的内边距 -->
<padding android:left="7dp"
padding android;top="7dp"
padding android:right="7dp"
padding android:bottom="7dp" />
<!-- 设置边框 -->
<stroke android:width="10dp" android:color="#f00" />
</shape>
用Java代码实现:
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setTheme(R.style.CrazyitTheme);
setContentView(R.layout.linear_layout_3);
}
Tip:一般Theme在 AndroidManifest.xml 文件中设定,比上面方法更容易。
<applicaton android:theme="@style/CrazyitTheme">
...
</application>
<activity android:theme="@android:style/Theme.Dialog">
...
</activity>