要使用Theme可以直接在AndroidManifest.xml中設定,比如:
<activity android:name=".testTheme"
"@android:style/Theme.Dialog"/>
另外在官網可以看到setTheme()這個方法,但是就算你按規定寫成
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(android.R.style.Theme_Dialog);
setContentView(R.layout.main);
}
卻會發現根本沒有作用。
通常會想使用setTheme()的原因是為了在程式執行時期runtime時,動態dynamic決定要使用那一種Theme,為了達到讓setTheme產生功能,程式的寫法要注意兩個地方
程式如下:
(1) AndroidManifest.xml先指定一個 default theme
<activity android:name=".Main"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog">
</activity>
(2) 程式動態決定要用那一種 Theme
public class Main extends Activity {
private boolean isDialog = false;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public void setTheme(int resid){
if(!isDialog){
super.setTheme(android.R.style.Theme_Translucent);
}else{
super.setTheme(android.R.style.Theme_Dialog);
}
}
}
執行結果如下
(1) 透明Translucent
(2) Dialog
<activity android:name=".testTheme"
"@android:style/Theme.Dialog"/>
另外在官網可以看到setTheme()這個方法,但是就算你按規定寫成
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(android.R.style.Theme_Dialog);
setContentView(R.layout.main);
}
卻會發現根本沒有作用。
通常會想使用setTheme()的原因是為了在程式執行時期runtime時,動態dynamic決定要使用那一種Theme,為了達到讓setTheme產生功能,程式的寫法要注意兩個地方
(1) AndroidManifest.xml指定一個theme
(2) override setTheme方法
程式如下:
(1) AndroidManifest.xml先指定一個 default theme
<activity android:name=".Main"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog">
</activity>
(2) 程式動態決定要用那一種 Theme
public class Main extends Activity {
private boolean isDialog = false;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public void setTheme(int resid){
if(!isDialog){
super.setTheme(android.R.style.Theme_Translucent);
}else{
super.setTheme(android.R.style.Theme_Dialog);
}
}
}
執行結果如下
(1) 透明Translucent
(2) Dialog
沒有留言:
張貼留言