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)