我们经常看到,点开任务栏的消息通知,会弹出一个不是全屏的窗口,我们可以用Activity模拟那个窗口:
实现的效果如下:
在AndroidMainfest.xml中设置安卓风格为:
android:theme="@android:style/Theme.Dialog"
新建activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="#FFFFFF"
tools:context="com.example.aiden.example.MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="修改UI" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="当前进度" />
</LinearLayout>
通过设置LinearLayout的大小来设置窗口的大小【因为窗口的界面有xml文件决定】
在MainActivity.java中:
重写以下两个方法:
// 使得点击屏幕的任何地方不会退出该活动
@Override
public boolean onTouchEvent(MotionEvent event) {
return false;
}
// 重写键盘事件,若按下返回键,则退出程序
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
System.exit(0);
}
return false;
}