Android

SurfaceView开发[捉小猪]手机游戏 (二)

2021-08-25
我们在上一回(Android使用SurfaceView开发<捉小猪>小游戏 (一))搞懂了这个模式的基本实现思路,小猪如何找出最短的逃跑路线和如何播放路径动画. 还封装了我们自己的PathAnimation和Drawable. 还差下面树桩出现的效果: 哈哈,记得植物大战僵尸里面有个关卡的道具出现也是这种效果的. 本来做这个效果的时候,想着用一个方便快捷的方法:一个新线程中,不断遍历已出现的树桩,然后判断是否已到达目标位置,如果未到达就直接 x - - 后来发现,用这个方法存在三个问题: 1.

Android自定义开关按钮源码解析

2021-08-25
本文实例为大家分享了Android自定义开关的具体代码,供大家参考,具体内容如下 以 ToggleColorY 为例分析, ToggleImageY逻辑代码差不多 初始化参数 获取背景颜色,按钮颜色,开关状态 @SuppressLint("ResourceAsColor") private void initParame(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { TypedArray typed

Android实现声音采集回声与回声消除

2021-08-25
本文实例为大家分享了Android实现声音采集回声与回声消除的具体代码,供大家参考,具体内容如下 一.回声产生的原因 回声(或称回音)是指障碍物对声音的反射.声波在遇到障碍物时,一部分声波会穿过障碍物,而另一部分声波会反射回来形成回声.若障碍物具有坚硬光滑的表面易产生回声:反之,具有柔软的表面则易吸收声音:另外,粗糙的表面易散射声音.回声相比那些直接传播的声音所经过的路程更长,所以会比直接传播的声音晚被听到.如果两列声波的时间间隔小于0.1秒,人耳边无法分辨,只能听到被延长的声音.因为室温(20

Android录制按钮源码解析

2021-08-24
本文实例为大家分享了Android实现录制按钮的具体代码,供大家参考,具体内容如下 初始化 布局文件中参数 private void initParame(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.RButtonY, defStyleAttr, 0); //外

Android实现简单画中画功能

2021-08-24
Android 8.0推出了PictureInPicture(画中画功能),目前只有在8.0以上的系统上支持.对比IOS,IOS的Picture in Picture 模式是苹果公司在 iOS 9 中加入的一项多任务功能.下面先看一下效果: 相信不少人在平时使用ios手机的app时,已经体验过了,很高兴谷歌也推出了这项功能. 使用画中画模式注意点: 1.要使用画中画模式的Activity需要在清单文件中添加属性: android:configChanges="screenSize|smalles

Android自定义view之利用drawArc方法实现动态效果(思路详解)

2021-08-24
目录 前言 一.准备 1.测量 2.初始化画笔 3.自定义属性 二.关键方法介绍 drawArc 三.实现 1.思路 2.效果图 前言 前几天看了一位字节Android工程师的一篇博客,他实现的是歌词上下滚动的效果,实现的关键就是定义一个偏移量,然后根据情况去修改这个值,最后触发View的重绘来达到效果.于是今天根据这个思路来写一篇简单的文章.欢迎留言 一.准备 在这之前呢,还是得简单描述一下自定义view中的一些准备工作 1.测量 @Override protected void onSize

Android实现简单点赞动画

2021-08-24
思路 找到Activity中DecorView的RootView 确定点赞控件位于屏幕中的坐标值 将点赞效果View加入到RootView中, 给效果View添加自己想要的动画效果. 重复点击时候, 需要将效果View先移除掉再重新加入到RootView中. 代码 /**  * 普通点赞效果, 点击控件后出现一个View上浮  */ public class ViewLikeUtils {     public interface ViewLikeClickListener {        

Android之ArcSlidingHelper制作圆弧滑动效果

2021-08-24
目录 前言 初步分析 选择旋转方案 知其然,知其所以然 创建ArcSlidingHelper 前言 我们平时在开发中,难免会遇到一些比较特殊的需求,就比如我们这篇文章的主题,一个关于圆弧滑动的,一般是比较少见的.其实在遇到这些东西时,不要怕,一步步分析他实现原理,问题便能迎刃而解. 前几天一位群友发了一张图,问类似这种要怎么实现: 要支持手势旋转 旋转后惯性滚动 滚动后自动选中 哈哈, 来一张自己实现的效果图: 初步分析 首先我们看下设计图,Item绕着一个半圆旋转,如果我们是自定义ViewGr

Android LayoutParams使用案例详解

2021-08-24
LayoutParams是什么? LayoutParams主要保存了一个View的布局参数,因此可以使用LayoutParams来改变布局参数从而达到View位置的效果,一般在自定义View的时候使用. LayoutParams怎么用? 如果父控件是LinearLayout,需要使用LinearLayout.LayoutParams 代码如下: LinearLayout.LayoutParams layoutParams=(LinearLayout.LayoutParams)getLayoutP

Android 通过自定义view实现水波纹效果案例详解

2021-08-23
在实际的开发中,很多时候还会遇到相对比较复杂的需求,比如产品妹纸或UI妹纸在哪看了个让人兴奋的效果,兴致高昂的来找你,看了之后目的很明确,当然就是希望你能给她: 在这样的关键时候,身子板就一定得硬了,可千万别说不行,爷们儿怎么能说不行呢: 好了,为了让大家都能给妹纸们想要的,后面会逐渐分享一些比较比较不错的效果,目的只有一个,通过自定义view实现我们所能实现的动效: 今天主要分享水波纹效果: 标准正余弦水波纹: 非标准圆形液柱水波纹: 虽说都是水波纹,但两者在实现上差异是比较大的,一个通过正余

揭秘双十一手机淘宝图标如何被动态更换

2021-08-23
目录 1.Android如何动态更换桌面图标 1.1使用场景 1.2知识点 1.3使用Activity-alias 2.巨坑 2.1App的覆盖 2.2桌面上出现两个图标的问题 2.3桌面上图标消失的问题 2.4总结 2.5最终方案(方案一) 1.Android如何动态更换桌面图标 1.1使用场景 APP,在中国电商行业中,某宝和某东是行业的标杆.其中有一点挺让人好奇的,那就是在双十一临近之时,他们的APP桌面图标突然变成了带有双十一字样的图标.可能就是本来就内置了双十一的图标,等快到双十一的时

Android自定义轮播图效果

2021-08-23
本文实例为大家分享了Android自定义轮播图效果的具体代码,供大家参考,具体内容如下 概述 1.写一个布局,其中有ViewPager,TextView,LinearLayout. ViewPager:用来承载图片 TextView:用来展示文字描述 LinearLayout:用来展示指示器 2.自定义ConstraintLayout, 在该控件中处理页面切换逻辑等. 分析 1.获取自定义属性以及设置一些属性 public BannerY(Context context, AttributeSe

SurfaceView开发[捉小猪]手机游戏 (一)

2021-08-23
先上效果图: 哈哈, 说下实现思路: 我们可以把每一个树桩, 小猪, 车厢都看成是一个Drawable, 这个Drawable里面保存了x, y坐标, 我们的SurfaceView在draw的时候, 就把这些Drawable draw出来. 那可能有的小伙伴就会问了: 1. 那小猪是怎么让它跑起来, 并且腿部还不断地在动呢? 2. 还有小猪是怎么找到出路的呢? 刚刚我们讲过小猪是Drawable, 其实我们自定义的这个Drawable就是一个帧动画, 它里面有一个Bitmap数组, 一个curr

flutter 动手撸一个城市选择citypicker功能

2021-08-23
城市选择器在项目开发中一般都会用到,基于flutter版本的也有一个city_pickers但是已经很久没有人维护了,项目中之前也用的是这个,最近升级到flutter1.17.x后,发现有一定的概率闪退,无奈之下,只能自动动手撸一个了 demo下载地址:https://github.com/qqcc1388/city_picker CityPickerView能够实现以下功能 显示省市区地址,市或者区可以为空白数据 省市区数据支持自定义,但是格式要按照city.json中个格式来,如果需要外部传

Android Handler消息机制分析

2021-08-23
目录 Handler是什么? Handler 的基本使用 用法一:通过 send 方法 用法二:通过 post 方法 Handler 类 MessageQueue 类 Looper 类 Handler 的消息接收过程 Handler是什么? Handler 是一个可以实现多线程间切换的类,通过 Handler 可以轻松地将一个任务切换到 Handler 所在的线程中去执行.我们最常用的使用的场景就是更新 UI 了,比如我们在子线程中访问网络,拿到数据后我们 UI 要做一些改变,如果此时我们直接访

Android之FanLayout制作圆弧滑动效果

2021-08-23
目录 前言 简单分析 创建FanLayout 支持圆弧手势 添加轴承(中间的大表情) 对齐方式 Item保持垂直 轴承偏移 自动选中 布局模式 Item添加方向 添加指定选中 前言 在上篇文章(Android实现圆弧滑动效果之ArcSlidingHelper篇)中,我们把圆弧滑动手势处理好了,那么这篇文章我们就来自定义一个ViewGroup,名字叫就风扇布局吧,接地气. 在开始之前,我们先来看2张效果图 (表情包来自百度贴吧): 哈哈,其实还有以下特性的,就先不发那么多图了: 简单分析 圆弧手势

Android端权限隐私的合规化处理实战记录

2021-08-23
目录 是什么 为什么 具体实践 一.Android各版本对权限的适配处理 1.1 早期的注册权限 1.2 动态权限授予 1.3 READ_PHONE_STATE权限的变化 二.隐私信息合规化处理 2.1 隐私信息获取告知的直接化和透明化 2.2 隐私信息获取和传输的安全化 2.3 部分隐私Api调用的严格化 三.遇到的一些问题和坑 总结 是什么 对客户端而言,权限隐私可分为权限和隐私两个大的方面. 权限为用户通过app内弹窗设置或者手机设置内对应app的权限设置方式给予对应app相应的权限,如电

Android 集成Flutter

2021-08-23
目录 Android 集成Flutter 1, Hello Flutter 2, 引入 Flutter 模块 3,使用Flutter 3.1 添加依赖 3.2 运行Flutter页面 3.2.1 添加Flutter页面 4,Flutter APK 解析 5,踩过的坑 Android 集成Flutter Flutter 作为 Google 开源的新一代跨平台.高性能 UI 框架,旨在帮助开发者高效地构建出跨平台的.UI 与交互体验一致的精美应用,推出后一直倍受开发者的青睐. 当需要开发一个全新的应

Android Intent与IntentFilter案例详解

2021-08-22
1. 前言        在Android中有四大组件,这些组件中有三个组件与Intent相关,可见Intent在Android整个生态中的地位高度.Intent是信息的载体,用它可以去请求组件做相应的操作,但是相对于这个功能,Intent本身的结构更值得我们去研究. 2. Intent与组件        Intent促进了组件之间的交互,这对于开发者非常重要,而且它还能做为消息的载体,去指导组件做出相应的行为,也就是说Intent可以携带数据,传递给Activity/Service/Broa

Flutter源码分析之自定义控件(RenderBox)指南

2021-08-22
目录 前言 RenderObject 类继承层级解析 RenderBox 叶节点与父节点 控件的测量与布局 performResize 和 performLayout relayoutBoundary 叶节点 父节点 ParentData ParentData BoxParentData ContainerBoxParentData ContainerParentDataMixin 测量 child 大小 布局 child 控件的绘制 绘制自身内容 绘制 child repaintBoundar