Android

Android开发手册自定义Switch开关按钮控件

2022-06-09
目录 自定义Switch外观 布局样式 Drawable代码 自定义Switch外观 外观定制这块属于基操了,我们利用属性 android:track 和 android:thumb 定制 Switch 的背景图片和滑块图片,UI那能直接切图肯定做起来更快,此方式实现极其简单指定图片就行,所以今天我们实操的是自定义drawable的形式. 布局样式 <Switch android:layout_width="wrap_content" android:layout_height=

Android开发手册shape属性和子属性使用说明

2022-06-09
目录 shape属性详解 子属性详解 shape属性详解 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:innerRadius="30dp" android:innerRadiusRatio="2" androi

Android中TextView自动适配文本大小的几种解决方案

2022-06-09
目录 TextView文本大小自动适配与TextView边距的去除 一.Autosizing的方式(固定宽度) 二.自定义View的方式(固定宽度) 三.使用工具类自行计算(非控件固定宽度) 四.去除TextView的边距 总结 TextView文本大小自动适配与TextView边距的去除 标题太难取了,其实本文主要就是讲如何控制文本大小,让其自动适配宽度,其次我们还需要精准控制Text的高度和宽度间距等属性. 一般我们的布局都是分 match parent 和 wrap content 而他们

Android开发手册TextView控件及阴影效果实现

2022-06-09
目录 实践过程 初识 文字阴影 TextView是Android中最简单也是最常见的控件.今天小空就带大家会会她. 实践过程 初识 经过前两篇常用属性和不常用属性的讲解,是不是有些懵了,不要慌,真实开发中用到的属性其实连五分之一都到不了. 我们先来创建个基本的文本控件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.a

Android开发手册Button按钮实现点击音效

2022-06-09
目录 前言 实践过程 创建个布局 创建Activity AudioBtnUtils.class 结果 前言 大家玩游戏的时候都知道按钮除了点击效果还有点击音效,噗~的一声,就挺灵性的. 在Unity中实现很简单,原生的使用Audio Soure,如果你用过FairyGUI甚至不用写代码,直接妥妥拽拽可视化就搞定了. 突然有一天小空也想着怎么在APP中实现呢?所以准备封装一个. 虽然这个功能在实际开发中并没有多大卵用. 实践过程 好了,既然要实现点击按钮有音效,那么我们先准备一个音效,放到[res

Flutter实现切换应用时隐藏应用预览

2022-06-09
如果您要显示敏感数据,例如.钱包金额,或者只是当登录表单显示插入的密码清晰时(想想眼睛图标..),当您不在应用程序中时,您必须隐藏敏感数据. 许多应用程序已经这样做了,无论是在 Android 还是 iOS 上. 今天我们将看看如何在不使用任何包的情况下完成这项任务,并自己编写所有代码.别担心,这很容易. 因此,请继续了解当您从一个应用切换到另一个应用时如何隐藏应用预览. 开始使用 现在,让我们开始编码吧! 创建一个新的基本 Flutter 应用程序.(我想你知道该怎么做^^). 安卓 在 An

Android开发手册Chip监听及ChipGroup监听

2022-06-09
目录 Chip监听 ChipGroup监听 实例 效果展示 Chip监听 选中状态的监听:setOnCheckedChangeListener,该监听只有设置了checkable 属性为true或者使用了[filter/entry/choice]这三个style主题的时候才生效. 点击事件的监听:setOnClickListener 关闭按钮被点击的监听:setOnCloseIconClickListener Java myChip.setOnCloseIconClickListener(Vie

Android开发自定义双向SeekBar拖动条控件

2022-06-09
目录 目标:双向拖动的自定义View 实现步骤 自定义属性获取 确定自定义view尺寸 绘制相关的内容部分 滑动事件处理 目标:双向拖动的自定义View 国际惯例先预览后实现 我们要实现的就是一个段位样式的拖动条,用来做筛选条件用的,细心的朋友可能会发现微信设置里面有个一个通用字体的设置,拖动然后改变字体大小; 这个相对比微信那个的自定义view算是一个扩展,因为我们是双向滑动,这个多考虑的一点就是手指拖动的是哪一个滑动块! 我们先看下GIF预览,然后我们今天就一步步实现这个小玩意… 实现步骤

Android解决所有双击优化的问题

2022-06-08
目录 背景 transform简介 具体开发 初始化 构建transform ClassVisitor机制 修改前的类 修改后的类 其中init方法我们回去给doubletap 完成初始化操作,下面我们来讲下InitBlockVisitor. 最后我们修改了onClick方法 条件语句与label分析 背景 产品想对多次快速点击做一下优化,想要的效果就是双击不会打开多次 但是从开发角度来说,我可以用kotlin的拓展方法来调整这个,但是之前的历史债务可能会把我让我有点手足无措,同时java代码也

Android开发手册SeekBar拖动条使用实例

2022-06-08
目录 实践过程 常用属性 基本使用 自定义样式 自定义样式 实践过程 常用属性 因为Seekbar继承自ProgressBar,所以ProgressBar支持的XML属性SeekBar都适用. [android:max="100"]:设置该进度条的最大值[android:progress="50"]:设置该进度条的已完成进度值[android:progressDrawable="@drawable/icon_xinsui"]:自定义drawabl

Android开发手册TextView属性实现效果盘点

2022-06-08
目录 前言 实践过程 如何实现drawable的动画? 图文混排 前言 前面小空带大家了解了TextView的属性,实践了一些自定义粗细,阴影效果,链接形文字. 但这还仅仅局限在用她本身的能力来实现的,那么她还能有什么花样呢? 我们先提出三个问题: 例如有些时钟的显示,那如何让文本带有动画效果? 例如如何让一个文本支持多种颜色和大小? 那有没有统一快捷的方案? 我们带着疑问来看解决方案,大佬直接看最后开源项目. 实践过程 如何实现drawable的动画? 我们用帧动画举例,准备一个序列帧动画,放

Android自定义Dialog的方法实例

2022-06-07
因为公司需要不同样式的dialog,既有取消和确认键 又需要只有确认键的 并且系统自带dialog样式太丑 所以就自己做了个 接下来看代码: /** * Created by on 2017/9/16. * 自定义Dialog */ public class MyDialog extends Dialog { private Button yes;//确定按钮 private Button no;//取消按钮 private TextView titleTv;//消息标题文本 private T

Android WebView软键盘遮挡输入框方案详解

2022-06-07
目录 背景 纪实 方案 实现 总结 背景 笔者在使用 WebView 加载含有输入框的 H5 页面时,点击输入框后,输入框会被软键盘遮挡住,无法看到输入的内容,这很影响用户体验. 笔者想着这种业务场景比较常见,遂上网搜索一番,果不其然,有不少同志遇到这个问题,想来这个问题很好解决了.笔者一一尝试了同志们提供的解决方案,结果要不是没有作用,要不是效果不太满意,只好自己另辟蹊径了. 注:在笔者的业务场景中,App是全屏的,即没有顶部的系统栏,也没有底部的导航栏,所以笔者的解决方案,可能不适用于其他场

Android&nbsp;实现云知声版离线语音合成

2022-06-06
目录 简介 在线合成和离线合成(合成速度) 集成方法 在AndroidManifest.xml设置所需要的权限 使用方法 总结 简介 科大讯飞:合成速度快,准确度高,模型多.但问题也是相当明显,只有在线合成是免费的,离线则是一笔不小的开销. 百度:是专门为他的导航做的一套,性能相对也还可以,但是他只支持离在线混合模式,默认是在wifi情况下是使用在线模式,4g或无网络情况下使用离线模式. 云知声:则可以实现完全的离线合成模式,相比于前两个,性能可能没那没完美,不过对合成的语音要求不高的应用来说,

Android应用关闭的情况以及识别方法详解

2022-06-06
目录 引言 哪些情况会导致应用关闭 一.系统原因 二.用户原因 三.应用自身问题 识别方法 1.应用自身Bug问题 2.手机关机 3.低电量.省电模式 4.内存不足 5.用户正常返回退出应用 6.厂商后台管理与用户手动清理应用 7.其他原因 最后 引言 探讨应用关闭问题的来由和应用保活是关联的,特定类型的应用如: 聊天交友软件 轨迹记录软件 企业内部软件 硬件搭配手机应用检测软件等等 这些应用是需要保持长时间在后台运行,当应用被关闭后,会造成数据缺失.不完整等问题.通过记录及分析应用关闭原因,反

Android开发之Flutter与webview通信桥梁实现

2022-06-06
前言 最近业务有需求需要在flutter内使用webview进行内嵌H5进行展示,此时需要涉及到H5与flutter之间额通信问题.比如发送消息或者H5调用Flutter的相机等等 webview选型 这里我们使用官方维护的插件webview_flutter 如何通信? webview在初始化的时候需要向容器内注册一个全局方法供H5进行调用 WebView( initialUrl: 'https://flutter.dev', javascriptMode: JavascriptMode.unr

Android开发案例手册Application跳出dialog

2022-06-06
目录 实践过程 场景还原 开始 可能会遇见的bug 实践过程 场景还原 线程中监测和硬件的连接,在任何断开的话需要弹出框给用户选择是否重新连接. 所以我们的思路就是不使用依托于Activity的Dialog,而是使用依托于Aplication的Dialog. 开始 首先是动态申请权限 <!--这行代码必须存在,否则点击不了系统设置中的按钮--> <uses-permission android:name="android.permission.SYSTEM_ALERT_WIND

Android自定义折线图控件的完整步骤

2022-06-06
目录 前言 概述 原点 计算Y轴宽度 计算X轴高度 X轴 绘制轴线 X轴刻度间隔 网格线.文本 Y轴 计算Y轴分布 刻度间隔.网格线.文本 折线 代码 总结 前言 日前,有一个“折现图”的需求,如下图所示: 概述 如何自定义折线图?首先将折线图的绘制部分拆分成三部分: 原点 X轴 Y轴 折线 原点 第一步,需要定义出“折线图”原点的位置,由图得: 可以发现,原点的位置由X轴.Y轴所占空间决定: OriginX:Y轴宽度OriginY:View高度 - X轴高度 计算Y轴宽度 思路:遍历Y轴的绘制

Flutter利用Hero组件实现自定义路径效果的动画

2022-06-06
目录 前言 Hero 的定义 RectTween 自定义RectTween 运行效果 总结 前言 我们在 页面切换转场动画,英雄救场更有趣!介绍了 Hero 动画效果,使用 Hero 用于转场能够提供非常不错的体验.既然称之为英雄,肯定还有其他技能,本篇我们就来探索一下 Hero 动画的返回效果. Hero 的定义 Hero 组件是一个 StatefulWidget,构造方法如下: const Hero({   Key? key,   required this.tag,   this.crea

Andorid 状态管理之Lifecycle浅析

2022-06-06
目录 原理概述 构成 模型 源码 1. addObserver(observer) 2. sync() 3. setCurrentState.moveToState 监听 其他 1. Application.ActivityLifecycleCallbacks 总结 原理概述 Lifecycle主要用于Activity.Fragment这一类具有状态的组件的状态监听,最主要的一个作用就是将原先Activity.Fragment中的大量的生命周期相关的回调函数移出View层文件,从设计角度上来说,