热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android学习笔记·屏幕音量

获取屏幕参数屏幕参数是某些自定义View必须的参数(基于Android27)1、非Activity调用:WindowManagerwm(W

获取屏幕参数

屏幕参数是某些自定义View必须的参数(基于Android 27)

1、非Activity调用:

WindowManager wm = (WindowManager)getContext().getSystemService(Context.WIINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();wm.getDefaultDisplay().getMetrics(dm);
int width = metric.widthPixels; // 屏幕宽度(像素)
int height = metric.heightPixels; // 屏幕高度(像素)
float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)

2、Activity调用:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metric.widthPixels; // 屏幕宽度(像素)
int height = metric.heightPixels; // 屏幕高度(像素)
float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)

设置全屏

1、代码设置:

requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 这个方法必修在setContentView()之前调用
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息栏


2、AndroidManifest.xml 中配置 Activity以及自定义Style属性文件:

AndroidManifest.xml文件:

"true" android:icon="@mipmap/ic_launcher"android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true"android:theme="@style/AppTheme">".MainActivity"android:theme="@style/MyStyle">//自定义Style属性 MyStyle "android.intent.action.MAIN"/> "android.intent.category.LAUNCHER"/>

styles.xml文件添加:

两种方式都可实现页面全屏(如果第二种主题用在application节点的话,整个应用都会默认全屏),

第一种方式设置之后在页面打开的时候会弹一下状态栏然后消失,所以建议使用第二种。

设置屏幕常亮

在页面代码中添加window的flag:

//申请权限
"android.permission.WAKE_LOCK">//打开常亮window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
//关闭常亮window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

非原生Activity的常亮设置:

在application继承类中的onCreate()方法中实现 registerActivityLifecycleCallbacks()接口,并在对应的Activity生命周期中打开屏幕常亮即可。详细请参考 出门左转。


调节屏幕亮度

getWindow().getAttributes().screenBrightness = 1f;//亮度值为 0f-1f,0f为最暗,1f最亮;


调节音量

//获取音频管理器
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);//设置音量 。在设置之前最好先获取一下设备最大音量值,AudioManager.getStreamMaxVolume(AudioManager.STREAM_XXXXX) audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,6,AudioManager.FLAG_SHOW_UI)//源码 参数1:音频类型 AudioManager.STREAM__XXXX (媒体、通话、通知),
//参数2:设置值,
//参数3:辅助参数 AudioManager.FLAG_XXXX (设置音量的时候是显示空控件,还是播放声音,还是震动等);
public void setStreamVolume(int streamType, int index, int flags) { final IAudioService service = getService(); try { service.setStreamVolume(streamType, index, flags, getContext().getOpPackageName());} catch (RemoteException e) {throw e.rethrowFromSystemServer(); }
}

 参考 Android音量控制



转:https://juejin.im/post/5c8856015188257e3f1afed7



推荐阅读
author-avatar
曼珠沙華的朦朧_759
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有