Android

Flutter使用Overlay与ColorFiltered新手引导实现示例

2022-10-05
目录 思路 Flutter BlendMode ColorFiltered 实现 获取镂空位置 ColorFiltered child 完整代码 最终效果 小结 思路 开发过程中常见这样的需求,页面中有几个按钮,用户首次进入时需要对这几个按钮高亮展示并加上文字提示.常见的一种方案是找UI切图,那如何完全使用代码来实现呢? 就以Flutter原始Demo页面为例,如果我们需要对中间展示区域以及右下角按钮进行一个引导提示. 我们需要做到的效果是除了红色框内的Widget,其余部分要盖上一层半透明黑色

Android权限询问的实例详解

2022-09-29
AndroidMaifest.xml中声明权限 <!-- 声明所有需要的权限(包括普通权限和危险权限) --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses

Android 使用压缩纹理的方案

2022-09-28
目录 一.压缩纹理概念 二.OpenGL 接口 1.glCompressedTexImage2D 2.判断压缩纹理是否支持 三.压缩纹理加载 1.ETC1 2.ETC2 3.ASTC 四.总结 本文介绍了什么是压缩纹理,以及加载压缩纹理的核心步骤.并在 Android OpenGLES 平台上实现了压缩纹理的显示. 一.压缩纹理概念 传统的图片文件格式有 PNG . JPEG 等,这种类型的图片格式无法直接被 GPU 读取,需要先经过 CPU 解码后再上传到 GPU 使用,解码后的数据以 RGB

使用flutter的showModalBottomSheet遇到的坑及解决

2022-09-28
目录 遇到了三个比较坑的地方 我们解决完后的效果如下 解决问题一 解决问题二 解决问题三 在使用官方的showModalBottomSheet这个组件时到目前为止 遇到了三个比较坑的地方 1. 无法直接设置圆角: 2. 组件最多只能撑满半屏幕,再多就出界了: 3. 在这个组件里面如果有选择按钮等其他一些需要改变状态的组件时,即便使用setState,状态也无法更新. 我们解决完后的效果如下 解决问题一 使用stack包裹住子组件解决圆角的问题,且需要设置背景颜色为Colors.balck54,这

flutter&nbsp;showModalBottomSheet常用属性及说明

2022-09-27
目录 showModalBottomSheet常用属性 showModalBottomSheet flutter常见控件及例子 贝塞尔曲线 底部弹窗 下拉框 展开闭合控件 输入框 弹出框加叠加(一个红包的样子) showModalBottomSheet常用属性 在使用showModalBottomSheet这个控件时,想要设置圆角,在内容widget设置不管用,然后直接看这个控件的实现原理,一看有个shape属性,感觉有戏!果然设置完毕后,成功了. 注意:一定不要设置builder中的背景颜色,

Android开发Flutter 桌面应用窗口化实战示例

2022-09-27
目录 前言 一.应用窗口的常规配置 应用窗口化 自定义窗口导航栏 美化应用窗口 二.windows平台特定交互 注册表操作 执行控制台指令 实现应用单例 三.桌面应用的交互习惯 按钮点击态 获取应用启动参数 四.写在最后 前言 通过此篇文章,你可以编写出一个完整桌面应用的窗口框架. 你将了解到: Flutter在开发windows和Android桌面应用初始阶段,应用窗口的常规配置: windows平台特定交互的实现,如:执行控制台指令,windows注册表,应用单例等: 桌面应用的交互习惯,如

Android 十六进制状态管理实例详解

2022-09-27
目录 背景 示例 实现思路 代码测试 十六进制 总结 背景 最近需要实现一个状态管理类: 在多种场景下,控制一系列的按钮是否可操作. 不同场景下,在按钮不可操作的时候,点击弹出对应的Toast. 随着场景数量的增加,这个管理类的实现,就可能会越来越复杂. 刚好看到大佬的文章,顺便学习和实践一下.参考学习:就算不去火星种土豆,也请务必掌握的 Android 状态管理最佳实践 示例 还是用大佬那个例子. 例如,存在 3 种模式,和 3个按钮,按钮不可用的时候弹出对应的 Toast. 模式 A 下,要

react&nbsp;native打包apk文件安装好之后进入应用闪退的解决方案

2022-09-26
目录 react native打包apk文件安装好之后进入应用闪退 可以试试下面的方法 react-native程序出现闪退原因之一 原因 react native打包apk文件安装好之后进入应用闪退 这个是我一个前端前辈帮我弄的,自己解决的时候不行,她去官网找了相关的问题,然后发给我的. react-native android 的release安装包运行闪退,但是debug运行正常 环境:0.63.3 安卓集成react-native时根据官网提供的文档配置后,跳转到rn页面时闪退,或者页面

Opengl ES之纹理贴图使用示例

2022-09-26
目录 正文 纹理坐标 纹理环绕 纹理过滤 纹理单元 Opengl中纹理的使用 纹理坐标映射关系 正文 纹理可以理解为一个二维数组,它可以存储大量的数据,这些数据可以发送到着色器上.一般情况下我们所说的纹理是表示一副2D图,此时纹理存储的数据就是这个图的像素数据. 所谓的纹理贴图,就是使用Opengl将这个纹理数据渲染出来,这个过程有点像装修工人给墙体贴瓷砖,而瓷砖好比作纹理. 纹理坐标 如果为了将一副纹理图贴到Opengl绘制的一个矩形上,那么就需要解决一个问题,如何知道矩形的具体某个点对应纹理

详解Flutter 响应式状态管理框架GetX

2022-09-25
目录 一.状态管理框架对比 Provider BLoC GetX 二.基本使用 2.1 安装与引用 2.2 使用GetX改造Counter App 2.3 GetX代码插件 三.其他功能 3.1 路由管理 3.2 依赖关系管理 3.3 工具 3.4 改变主题 3.5 GetConnect 3.6 GetPage中间件 Priority Redirect onPageCalled OnBindingsStart OnPageBuildStart 3.7 全局设置和手动配置 3.8 StateMix

Android使用元数据实现配置信息的传递方法详细介绍

2022-09-25
目录 前序 一.在代码中获取元数据 二.给应用页面注册快捷方式 前序 格式 <meta-data android:name="weather" android:value="xxx"/> 什么场景需要使用? 使用第三方SDK,需要在APP应用内使用别的APP的整合包,如使用微信登录.某某地图等. 一.在代码中获取元数据 在java代码中,获取元数据信息的步骤分为下列三步: 调用getPackageManager方法获得当前应用的包管理器: 调用包管理器的

务必掌握的Android十六进制状态管理最佳实践

2022-09-24
目录 前言 我和十六进制的 “三次握手” 使用十六进制前的混沌世界 十六进制能很好解决这些问题 十六进制运作机制 十六进制状态管理实战 十六进制状态存取实战 小结 作为额外附赠的答疑 前言 上周在掘金巧遇一篇 “用设计模式管理状态” 文章,作为补充,在评论区安利我司封装商业级 SDK 时常用的 “十六进制状态管理机制”. 原以为无人对此感兴趣,没想到留言很快便收到文章作者回复,且在评论区耐心和我探讨设计模式 独占式状态机 和十六进制 复合状态管理 使用场景区别. 遗憾的是,通过评论区只言片语,难

Flutter异步操作实现流程详解

2022-09-24
目录 一.FutureBuilder 二.StreamBuilder 在Flutter中,借助 FutureBuilder 组件和 StreamBuilder 组件,可以非常方便地完成异步操作. 一.FutureBuilder 在讲解FutureBuilder之前,你首先要知道Future是什么,了解了这个,后面再了解该组件就轻松许多. 在不同的编程语言中会有不同的名词来定义,在Dart语言中 选择使用Future类型配合async.await关键字来实现异步支持. Future 表示一个现在不

flutter中使用流式布局示例详解

2022-09-23
目录 简介 Flow和FlowDelegate Flow的应用 总结 简介 我们在开发web应用的时候,有时候为了适应浏览器大小的调整,需要动态对页面的组件进行位置的调整.这时候就会用到flow layout,也就是流式布局. 同样的,在flutter中也有流式布局,这个流式布局的名字叫做Flow.事实上,在flutter中,Flow通常是和FlowDelegate一起使用的,FlowDelegate用来设置Flow子组件的大小和位置,通过使用FlowDelegate.paintChildre可

Flutter有无状态类与State及生命周期详细介绍

2022-09-23
目录 无状态类 有状态类 状态 State生命周期 Flutter中的生命周期类似于Vue.React中的生命周期一样,有初始化.状态更新.停用.销毁等. 在React中,组件分为函数式组件和类式组件,它们的区别就是一个无状态.一个有状态.那么在Flutter中亦是如此,它有两种类,一种是无状态类,一种是有状态类.其生命周期的使用就是有状态类的特定用法. 无状态类 无状态类内部有build方法,在表面上看 每次数据更新都会执行build方法.但实际上,在组件树中,当每次数据发生变更时,无状态类都

Android利用Canvas类绘制图形

2022-09-19
本文实例为大家分享了Android利用Canvas类绘制图形的具体代码,供大家参考,具体内容如下 首先介绍一下相关基础知识. 1.画笔(paint) 1.1.作用:画笔对象通过属性来设置笔的颜色.粗细.风格等. 1.2.设置图形绘制属性相关方法: setARGB():设置画笔的颜色:setAlpha():设置绘制图形的透明度:setStyle():设置画笔的样式风格:setStrockWidth():设置画笔的宽度: 1.3.设置文本绘制属性的相关方法: setTextSize():设置字体的大

Android利用Canvas标点画线并加入位移动画(2)

2022-09-19
本文实例为大家分享了Android利用Canvas标点画线,并加入位移动画的具体代码,供大家参考,具体内容如下 1.背景 继上次公司需求实现Canvas面板标记点,画折现,并利用属性动画进行沿线移动之后,又有了新问题. 发现公司提供的坐标有正值有负值,并且值很大,很容易超出屏幕范围,而且由于我们Canvas坐标方向与正常坐标系不符合,由此发现做的图方向也不对. 2.问题 Canvas坐标系位于屏幕左上角,且Y正向坐标向下,如何转换? 由于坐标有正有负,而Canvas默认只显示正方向,如何解决显示

Android学习笔记之蓝牙功能

2022-09-18
本文实例为大家分享了Android学习笔记之蓝牙功能的具体代码,供大家参考,具体内容如下 蓝牙:短距离无线通讯技术标准.蓝牙协议分为4层,即核心协议层.电缆替代协议层.电话控制协议层和其他协议层.其中核心协议层包括基带.链路管理.逻辑链路控制和适应协议四部分.链路管理(LMP)负责蓝牙组件间的建立.逻辑链路控制与适应协议(L2CAP)位于基带协议层上,属于数据链路层,是一个高层传输和应用层协议屏蔽基带协议的适配协议. 1).第一种打开蓝牙的方式: Intent enableIntent = ne

Android利用Canvas标点画线并加入位移动画(1)

2022-09-18
本文实例为大家分享了Android利用Canvas标点画线,并加入位移动画的具体代码,供大家参考,具体内容如下 1.背景 最近由于公司业务需要,需要自己实现一个点画线,移动的需求,这自然就想到了利用Canvas进行描点,画线连线. 过程比较简单,查阅了网上文章,发现写的都特别片面,很多人也会遇到类似需求,这里把整个实现过程讲一下,并且在实现过程遇到的一些小坑讲给大家. 先看效果图 其实点击检索,小人可以按照画好的路线进行移动. 具体代码: Canvas画点连线 class DrawView ex

Android 使用maven publish插件发布产物(aar)流程实践

2022-09-17
目录 背景 一.编译后的产物 1.1 APK 构件 1.2 AAB(Android app bundle)构件 1.3 AAR 构件 二.publish插件 2.1 maven-publish插件使用 2.2 maven插件使用 2.3 业务侧使用 三.问题总结 3.1 报错 3.2 module打包aar时依赖aar导致的类引用不到的问题 背景 平时开发中会把一些独立的功能模块抽取出来作为sdk,既方便业务接入,又能让其他业务线快速复用.那么我们就需要将sdk打包上传到maven仓库,让业务侧