Android Activity 对话框(Dialog)样式
有些时候需要把一个activity当成一个dialog来使用,或者说需要一个dialog里面放一些布局或者其它控件,这时候就需要一个Dialog样式的Activity了。
Activity一般给人的印象是要占满全屏的。伪装成Dialog的效果是只显示在部分屏幕中。
需要在Manifest里面配置activity的样式
android:theme="@android:style/Theme.Dialog"
这样activity就成了dialog的样式了,但为了更像dialog,可以在左上角加一个小图标,标题。
添加标题一共有两种方式,一种是在Manifest里面配置:
android:label="@string/activity_dialog"
另一种是在java代码里面控制:
setTitle(R.string.activity_dialog);
如果一个activity的标题不需要改变,推荐使用xml配置的方式。
为窗口加上小图标:
requestWindowFeature(Window.FEATURE_LEFT_ICON);
// 请求使用Window.FEATURE_LEFT_ICON小图标
getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, android.R.drawable.ic_dialog_alert);
// 添加小图标到activity对话框中。必需要先requestWindowFeature,不然会报错。
完整代码如下:
public class DialogActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_LEFT_ICON);
setContentView(R.layout.main);
getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, android.R.drawable.ic_dialog_alert);
}
}