android开发总的:activity全屏设置,主题设置,透明度设置及模式设置等基础知识

来源:互联网 发布:网络爬虫能干什么 编辑:程序博客网 时间:2024/05/29 08:26

应用设置屏幕全屏:

代码设置

在Activity oncreate()方法中

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. //隐去电池等图标和一切修饰部分(状态栏部分)    
  2. this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);  
  3.           // 隐去标题栏(程序的名字)  
  4.         this.requestWindowFeature(Window.FEATURE_NO_TITLE);  

在AndroidManifest.xml 中设置

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. 隐去标题栏,  隐去状态栏 android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  

以上方法适用于android4.0以下版本,对于在android4.0以上版本是底部有虚拟按键栏,如果需要进行隐藏处理

可以采用如下方法进行设置

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. if(android.os.Build.VERSION.SDK_INT>=14){  
  2.                getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);  
  3.                getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);  
  4.                  
  5.         }  
  6.         else if(android.os.Build.VERSION.SDK_INT>=16){  
  7.             getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);  
  8.             getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);  
  9.            }  

当用户单击屏幕时,底部控制栏还会出现,这个时候我问需要一直能在一段时间进行检测重复执行该操作(例如qq视频播放等app)只需要使用handler循环发送message

即可解决该问题。



窗口主题设置:(这里主要对于Activity设置,用到系统自动主题内容)

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. •android:theme="@android:style/Theme.Dialog"   将一个Activity显示为能话框模式  
  2. •android:theme="@android:style/Theme.NoTitleBar"  不显示应用程序标题栏  
  3. •android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  不显示应用程序标题栏,并全屏  
  4. •android:theme="Theme.Light"  背景为白色  
  5. •android:theme="Theme.Light.NoTitleBar"  白色背景并无标题栏   
  6. •android:theme="Theme.Light.NoTitleBar.Fullscreen"  白色背景,无标题栏,全屏  
  7. •android:theme="Theme.Black"  背景黑色  
  8. •android:theme="Theme.Black.NoTitleBar"  黑色背景并无标题栏  
  9. •android:theme="Theme.Black.NoTitleBar.Fullscreen"    黑色背景,无标题栏,全屏  
  10. •android:theme="Theme.Wallpaper"  用系统桌面为应用程序背景  
  11. •android:theme="Theme.Wallpaper.NoTitleBar"  用系统桌面为应用程序背景,且无标题栏  
  12. •android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen"  用系统桌面为应用程序背景,无标题栏,全屏  
  13. •android:theme="Translucent" 半透明  
  14. •android:theme="Theme.Translucent.NoTitleBar"  
  15. •android:theme="Theme.Translucent.NoTitleBar.Fullscreen"  
  16. •android:theme="Theme.Panel"  
  17. •android:theme="Theme.Light.Panel"   


设置窗体透明度,昏暗度,背景模糊处理:

透明度
WindowManager.LayoutParams lp=getWindow().getAttributes();
 lp.alpha=0.5f;
 getWindow().setAttributes(lp);
alpha在0.0f到1.0f之间。

昏暗度
WindowManager.LayoutParams lp=getWindow().getAttributes();
   lp.dimAmount=0.5f;
  getWindow().setAttributes(lp);
   getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
dimAmount在0.0f和1.0f之间。

背景模糊
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
      WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

View设置View view=...
view.getBackground().setAlpha(100);//0~255透明度值 ,0为完全透明,255为不透明

在配置文件内activity属性配置内加上
android:theme="@android:style/Theme.Translucent" 
可设置窗体透明


屏幕待机设置(设置屏幕不睡眠处理)

1,在Activity oncreat()方法中设置
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

2,PowerManager和PowerManager.WakeLock实现:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. //添加锁  
  2. private void acquireWakeLock() {  
  3.          if (wakeLock == null) {  
  4.                 Logger.d("Acquiring wake lock");  
  5.                 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);  
  6.                 wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, this.getClass().getCanonicalName());  
  7.                 wakeLock.acquire();  
  8.             }  
  9.           
  10.     }  
  11.   
  12. //释放锁  
  13. private void releaseWakeLock() {  
  14.         if (wakeLock != null && wakeLock.isHeld()) {  
  15.             wakeLock.release();  
  16.             wakeLock = null;  
  17.         }  
  18.   
  19.     }  

acquireWakeLock()方法在Activity的 onResume中被调用。releaseWakeLock()方法在Activity的 onPause中被调用。

利用Activiy的生命周期,巧妙的让 acquire()和release()成对出现。

关于int flags
各种锁的类型对CPU 、屏幕、键盘的影响:

PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度

添加权限:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <uses-permission android:name="android.permission.WAKE_LOCK" />   
  2.  <uses-permission android:name="android.permission.DEVICE_POWER" />  


3,还可以这样设置
Settings.System.SCREEN_OFF_TIMEOUT


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 员工要请假不批怎么办 普法知识竞赛要重新参与怎么办 我被当兵的打怎么办 头发没了一小块怎么办 改革怎么看我该怎么办 笔记本电脑卡死了怎么办关不了机 电脑卡死了怎么办关不了机 火车上别人占座怎么办 火车上遇到占座怎么办 青少年体力差容易疲劳怎么办 四年级的孩子作业拖拉怎么办 四年级孩子不写作业怎么办 四年级孩子不爱写作业怎么办 四年级的孩子写作业慢怎么办 四年级孩子不想写作业怎么办 四年级孩子写作业特别慢怎么办 6岁儿童睡眠少怎么办 四岁儿童睡眠少怎么办 因睡眠不足第二天没有精神怎么办 睡时间久了头疼怎么办 睡不踏实老醒怎么办 运动过后大腿肌肉酸痛怎么办 牛奶喝多了想吐怎么办 运动过度后吐了怎么办 喝酒后反胃想吐怎么办 拔牙后反胃想吐怎么办 健身完恶心想吐怎么办 锻炼后头晕想吐怎么办 高三学生睡眠不好怎么办 狗狗精力太旺盛怎么办 新入职的同事比你厉害怎么办 银子弹鞋开胶了怎么办 我很笨脑子反应慢怎么办 学车脑子不好使怎么办 生完二胎脑子不好使怎么办 羽毛球鞋买小了怎么办 羽毛球鞋买大了怎么办 感觉自己脑子越来越笨了怎么办? 生完孩子后身体素质差怎么办 胃口太好越来越胖怎么办 心情一紧张心跳手抖怎么办