Theme 主题资源与样式资源类似,但是存在如下区别:
- 主题不能作用于单个 View 组件,主题应该对应用中单个或者所有的 Activity 起作用;
- 主题定义的属性应该是改变窗口的外观的属性,例如窗口标题、窗口边框等。
下面是简单的使用示例,首先在上一篇文章中的 /res/values 目录下的 styles.xml 文件中追加如下字段:
<style name="TestTheme">
<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/img06</item>
</style>
这段代码中使用的 window_border 资源需要我们在 /res/drawable 目录下自行定义,其内容为:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#00FFFFFF" />
<padding
android:bottom="7dp"
android:left="7dp"
android:right="7dp"
android:top="7dp" />
<stroke
android:width="10dip"
android:color="#FF80FF" />
</shape>
主布局文件我们还是使用上一篇文件中的布局文件。
主程序的代码如下:
package com.toby.personal.testlistview;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
final private static String TAG = "Toby_Test";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.TestTheme);
setContentView(R.layout.activity_main);
}
}
运行效果图:
参考文献:《疯狂Android讲义(第2版)》