Android TextView 实现跑马灯
介绍 Android TextView 跑马灯的两种实现,一是设置 ellipsize 为 marquee、singleLine 与 marqueeRepeatLimit 属性并在代码中请求焦点,二是自定义 TextView 重写 isFocused 返回 true,后者不抢占页面焦点,更推荐使用。
介绍 Android TextView 跑马灯的两种实现,一是设置 ellipsize 为 marquee、singleLine 与 marqueeRepeatLimit 属性并在代码中请求焦点,二是自定义 TextView 重写 isFocused 返回 true,后者不抢占页面焦点,更推荐使用。
讲解 Android Studio 把 library 模块打成 jar 包的方法,在 build.gradle 自定义 type 为 Copy 的 makeJar 任务,将 build/intermediates/bundles/release 下的 classes.jar 重命名复制到 build/libs,也可执行 gradlew build 生成。
实现 Android 调用系统相机与相册获取头像,通过 ACTION_IMAGE_CAPTURE 与 ACTION_PICK 启动,在 onActivityResult 中缩放并做圆形裁剪,针对 4.4 之后 DocumentsContract 返回的多种 Uri 做路径兼容,解决小米手机打开相册崩溃的问题。
分享 Android 唤醒屏幕并解锁的实现,用 PowerManager 申请 ACQUIRE_CAUSES_WAKEUP 与 SCREEN_BRIGHT_WAKE_LOCK 组合的 WakeLock 且 acquire 传一万毫秒才稳定点亮,再用 KeyguardManager 的 disableKeyguard 解锁,需声明 WAKE_LOCK 与 DISABLE_KEYGUARD 权限。
总结 Android 截屏的三种实现,一是取 DecorView 的 DrawingCache 但截 WebView 会白屏,二是 adb shell screencap 命令直接存图,三是 Android 5.0 开放的 MediaProjection 配合 ImageReader 与 VirtualDisplay 截取整屏。
提供 Android 隐藏软键盘的两种方案,进入页面时用 setSoftInputMode 设为 SOFT_INPUT_STATE_ALWAYS_HIDDEN 防止自动弹出,点击空白处收起则在 BaseActivity 重写 dispatchTouchEvent 比对 EditText 坐标后调用 InputMethodManager 隐藏键盘。
记录用 Android 原生 AnimationUtils 工具类实现控件平移动画的写法,通过 makeInAnimation 与 makeOutAnimation 配合布尔参数控制从左侧或右侧移入移出,并结合 setVisibility 切换控件的显示与隐藏。
整理 Android 校验中国大陆手机号的两种正则写法,简单版用 ^[1][3578][0-9]{9}$ 匹配十一位号码,细分版按 13、15、17、18 及 145、147 等号段分组匹配,并用 Pattern 与 Matcher 完成校验。
实现点击提现按钮弹出 PopupWindow 输入支付密码的功能,密码框 inputType 设为 textPassword,旁边用 ToggleButton 配合 selector 切换密码的明文与密文显示,附完整布局文件与 Activity 代码。
记录升级 Android Studio 3.0.1 后打包报 Expected resource of type id 即 ResourceType 错误的处理过程,问题出在依赖开源库的 if 判断处,在报错方法上添加 @SuppressWarnings 注解并传入 ResourceType 即可通过编译。