picture 0

都是一些小问题,几句话就说清楚的,奈何记不住,每次都要搜,整理一下,有新的就加上

Android保持屏幕常亮

在Activity中增加一个Flag即可

1
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

Android设置横屏

在Manifetst.xml中给需要横屏的Activity设置screenOrientation属性

1
android:screenOrientation="sensorLandscape"
value description
unspecified 默认值,由系统决定,不同手机可能不一致
landscape 强制横屏显示
portrait 强制竖屏
behind 与前一个activity方向相同
sensor 根据物理传感器方向转动,用户90度、180度、270度旋转手机方向,activity都更着变化
sensorLandscape 横屏旋转,一般横屏游戏会这样设置
sensorPortrait 竖屏旋转
nosensor 旋转设备时候,界面不会跟着旋转。初始化界面方向由系统控制
user 用户当前设置的方向
value description
unspecified 默认值,由系统决定,不同手机可能不一致
landscape 强制横屏显示
portrait 强制竖屏
behind 与前一个activity方向相同
sensor 根据物理传感器方向转动,用户90度、180度、270度旋转手机方向,activity都更着变化
sensorLandscape 横屏旋转,一般横屏游戏会这样设置
sensorPortrait 竖屏旋转
nosensor 旋转设备时候,界面不会跟着旋转。初始化界面方向由系统控制
user 用户当前设置的方向

获取当前电量

1
2
BatteryManager batteryManager = (BatteryManager)getSystemService(BATTERY_SERVICE);
int battery = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);

一个TextView设置不同大小颜色

使用Html.fromHtml(String source, int flags)

例:

1
2
String str1 = "今天<font color='#FF0000'>天气不错</font>";
tv1.setText(Html.fromHtml(str1));
1
2
String str2 = "今天<font color='#FF0000'><small>天气不错</small></font>";
tv2.setText(Html.fromHtml(str2));
1
2
String str3 = "今天<font color='#FF0000'><big>天气不错</big></font>";
tv3.setText(Html.fromHtml(str3));

flags:

  • FROM_HTML_MODE_COMPACT:html块元素之间使用一个换行符分隔
  • FROM_HTML_MODE_LEGACY:html块元素之间使用两个换行符分隔

资源字符串添加全角空格

全角空格:\u3000
半角空格:&#160;

Dialog弹出时隐藏导航栏

先创建dialog
var dialog = builder.create()
然后

1
2
3
4
5
6
7
8
9
10
11
12
13
dialog.window?.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
dialog.show()
dialog.window?.decorView?.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
dialog.window?.decorView?.setOnSystemUiVisibilityChangeListener {
var uiOptions: Int = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or //布局位于状态栏下方
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or //全屏
View.SYSTEM_UI_FLAG_FULLSCREEN or //隐藏导航栏
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
uiOptions = uiOptions or 0x00001000
dialog.window?.decorView?.systemUiVisibility = uiOptions
}
dialog.window?.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)

也可以自定义dialog然后重写show方法

Kotlin按固定长度分割字符串

var array = "abcdef".chunked(2)