界面及Activity参数设置
去标题栏(在onCreate中)
requestWindowFeature(Window.FEATURE_NO_TITLE);
设置全屏(在onCreate中)
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
横竖屏幕(在onResume中)
//手机屏幕的朝向有11个可选值,分别如下
//SCREEN_ORIENTATION_BEHIND:
Activity堆栈中当前Activity下面的那个Activity的方向
//SCREEN_ORIENTATION_LANDSCAPE: 横屏(风景照) ,显示时宽度大于高度
//SCREEN_ORIENTATION_PORTRAIT: 竖屏 (肖像照) , 显示时高度大于宽度
//SCREEN_ORIENTATION_NOSENSOR: 忽略物理感应器——即显示方向与物理感应器无关
//SCREEN_ORIENTATION_SENSOR: 由物理感应器决定显示方向,它取决于用户如何持有设备
//SCREEN_ORIENTATION_UNSPECIFIED: 默认值,由Android系统自己选择适当的方向
//SCREEN_ORIENTATION_USER: 用户当前的首选方向
//SCREE……
setRequestedOrientation(ActivityInfo. SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
横竖屏切换不重启Activity
- 在androidmanifest.xml中的activit元素加入:Android:configChanges="orientation|keyboardHidden"
配置了这个属性,当我们横竖屏切换的时候会直接调用onCreate方法中的onConfigurationChanged方法,而不会重新执行onCreate方法。
<activity </activity> |
@Override public void onConfigurationChanged(Configuration super.onConfigurationChanged(newConfig); if(newConfig.orientation == tv.setText("横屏"); }else{……} } |
Toast
Private static Toast mToast; public static void showToast(Context context, if (mToast == null) { mToast = Toast.makeText(context, } else { mToast.setText(msg); } mToast.show(); } |
样式全解析:http://android.tgbus.com/Android/tutorial/201103/346236.shtml
Activity跳转 ,清空Activity栈
我们知道Android的窗口类提供了历史栈,我们可以通过stack的原理来巧妙的实现,这里我们在A窗口打开B窗口时在Intent中直接加入标志Intent.FLAG_ACTIVITY_CLEAR_TOP,这样开启B时将会清除该进程空间的所有Activity。
在A窗口中使用下面的代码调用B窗口:
Intent intent startActivity(intent); |
接下来在B窗口中需要退出时直接使用finish()方法即可全部退出。
自定义Activity栈
public class private static Stack<Activity> private static ScreenManager instance; private public static ScreenManager if( instance== null) instance= new ScreenManager(); return instance; } public void popActivity(){ Activity activity= if(activity!= null){ activity.finish(); activity= null; } } public void popActivity(Activity if(activity!= null){ activity.finish(); activityStack.remove(activity); activity= null; } } public Activity currentActivity(){ Activity activity= return activity; } public void pushActivity(Activity if( activityStack== null) activityStack= new activityStack.add(activity); } public void popAllActivityExceptOne( while(true ){ Activity if(activity== null) break; if(activity.getClass().equals(cls) popActivity(activity); } } } |
最新文章
- [译] jQuery 3 有哪些新东西
- barabasilab-networkScience学习笔记6-evolving networks
- VMwareTools安装笔记
- JAVA基础知识之网络编程——-基于TCP通信的简单聊天室
- JavaScript及C# URI编码详解
- Python 初学(一) 标识符
- poj 1113 Wall
- JAVA入门第二季(mooc-笔记)
- 利用TreeSet给纯数字字符串排序
- javascript 获取元素宽高
- eclipse 找不到application选项
- 【Espruino】NO.12 加速度计演示
- HDU 1022 Train Problem I 用栈瞎搞
- 阿里云API网关(15)监控预警
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十九):增加排行榜功能2
- 用递归方法求n阶勒让德多项式的值
- IO复用\阻塞IO\非阻塞IO\同步IO\异步IO
- VS Code中Matlab插件安装设置
- Zabbix3.0版Graphtree的安装配置
- PropertyPlaceHolderConfigurer中的location是不是用错了?