202011-10 Android实现圆角弹框功能 自定义弹窗类——Android透明圆角弹窗importandroid.content.Context;importandroid.graphics.Color;importandroid.graphics.drawable.ColorDrawable;importandroid.os.Bundle;importandroid.view.Window;importandroid.widget.ImageView;importandroid.widget.TextView;importandroidx.annotation.NonNull;importandroidx.appcompat.app.AlertDialog;publicclassMySetDailogextendsAlertDialog{TextViewtvmydai... 继续阅读 >
202011-10 Android Fragment监听返回键的一种合理方式 开场以下场景为杜撰:产品经理:“小罗,这个信息发送界面,如果用户输入了内容,点击返回键的时候,要先询问用户是否保存草稿箱哈”。小罗:“收到,这问题简单。”说完小罗就准备着手处理,然后却发现信息编辑界面是一个Fragment,然而Fragment并没有提供返回键点击的直接处理;小罗虽菜,但是摸鱼也摸了些年头了,这问题难不倒小罗。小罗心想,反正Activity提供了onBackPressed方法,再不济的情况把这个操作分发到Fragment中去... 继续阅读 >
202011-10 Android 边播边缓存的实现(MP4 未加密m3u8) 实现思路红色框的ProxyServer就是需要实现的一个代理服务器。当客户端拿到一个视频的url(mp4或者m3u8)时,通过proxyServer转化为一个代理的url,然后请求代理服务器;代理服务器接收到客户端的请求后,先查看本地是否存在缓存,如果不存在则向真实服务器发送请求,拿到结果后再存到本地。实现重点缓存是一个代理服务器的主要部分,所以这部分是一个重点。本设计的缓存是一个分片的LRU缓存。分片的好处是灵活方便做LRU。当真实... 继续阅读 >
202011-10 android实现短按电源键关机的实现代码 打开文件:\frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java在代码:privatestaticfinalintMSG_POWER_LONG_PRESS=14;下面添加:privatestaticfinalintMSG_POWER_SHUT_DOWN=15;在:caseMSG_POWER_LONG_PRESS:powerLongPress();break;下面添加:caseMSG_POWER_SHUT_DOWN:mWindowManagerFuncs.shutdown(false);break;找到caseKeyEvent.KEYCODE_POWER:注释掉/*result... 继续阅读 >
202011-08 Android服务应用ClockService实现闹钟功能 ClockService安卓服务应用实现闹钟,供大家参考,具体内容如下创建ClockActivity,可输入一个时间(使用Time文本框),再创建一个ClockService在用于计时,到时间后,以在Activity中发出通知(在下方的TextView中显示“时间到”)。注意:这里涉及到了Service操作Activity实验步骤:使用BoundService方式开启服务1、首先定义布局文件,这里不做过多赘述3、定义一个Service服务类,然后在类里面定义一个MyBinder的内部类,用于获取... 继续阅读 >
202011-06 Android Jetpack- Paging的使用详解 Google推出Jetpack组件化已经有相当一段时间了。各种组件也层出不穷。 Jetpack的东西也不少, 今天就搞一下这个 Paging Paging的出现,就是用作列表的分页加载。其实现在已经有非常多成熟高效的开源列表加载控件了,比如:Smartrefreshlayout等。但Google推出的,必然有它的有点,当然也有它的局限性。 ... 继续阅读 >
202011-06 Flutter 和 Android 互相传递数据的实现 (一)Android代码设置1,打开AndroidStudio创建一个应用程序,包名dev.android.book2,创建一个MyApplication,应用在AndroidManifest.xml文件中的application的android:name属性上3,创建FlutterEngine的实例,然后把这个实例添加到缓存的FlutterEngine当中4,创建MethodChannel的实例,指定一个此实例的唯一字符串,例如dev.android.book/add5,设置methodChannel方法回调函数,接收Flutter通过MethodChannel发过来的消息... 继续阅读 >
202011-01 Android教你如何发现APP卡顿的实现 最近部门打算优化下APP在低端机上的卡顿情况,既然想优化,就必须获取卡顿情况,那么如何获取卡顿情况就是本文目的。一般主线程过多的UI绘制、大量的IO操作或是大量的计算操作占用CPU,导致App界面卡顿。只要我们能在发生卡顿的时候,捕捉到主线程的堆栈信息和系统的资源使用信息,即可准确分析卡顿发生在什么函数,资源占用情况如何。那么问题就是如何有效检测Android主线程的卡顿发生?用adb系统工具观察App的卡... 继续阅读 >
202010-30 Android中比较两个图片是否一致的问题 在Fragment界面中,设置两个图片一致如下: 默认设置图片为:binding.ivArrow.setImageResource(R.drawable.icon_down); 先获取默认图片,再和其它两张图片做对比,然后处理业务逻辑:Drawable.ConstantStateivArrow=binding.ivArrow.getDrawable().getCurrent().getConstantState();Drawable.ConstantStateicon_up=getDrawable(R.drawable.icon_up).getConstantState();Drawable.Constant... 继续阅读 >
202010-30 Android RecycleView滑动停止后自动吸附效果的实现代码(滑动定位) 最近有个需求要求列表滑动后第一条需要和顶部对齐上网找了找 发现官方支持Recycle+ LinearSnapHelper可以实现但我实际操作加上后发现会卡顿滑动卡顿没有以前那种流畅感了想了想 算了懒得看源码 还是自己写一个得了 效果图:代码如下注释很清楚了 packagecom.example.testappimportandroidx.appcompat.app.AppCompatActivityimportandroid.os.Bundleimportandroidx.... 继续阅读 >
202010-30 Android开发TextvView实现镂空字体效果示例代码 记录一下...自定义TextViewpublicclassHollowTextViewextendsAppCompatTextView{privatePaintmTextPaint,mBackgroundPaint;privateBitmapmBackgroundBitmap,mTextBitmap;privateCanvasmBackgroundCanvas,mTextCanvas;privateRectFmBackgroundRect;privateintmBackgroundColor;privatefloatmCornerRadius;publicHollowTextView(Contextcontext){this(context,null);}publicHollowTex... 继续阅读 >
202010-30 Android Studio配置反混淆的实现 AndroidStudio如何混淆为什么要混淆了解安卓程序编译的会知道其实我们的apk并不是很安全,从apk从可以解包出,步骤:将apk文件改成zip结尾然后解压zip然后就会发现里面有一个classes.dexdex2jar这个工具将dex文件转成jar下载地址:http://sourceforge.net/projects/dex2jar/files/用这个工具的命令转jard2j-dex2jarclasses.dexjd-gui这个工具用于将jar转成java代码下载地址:http://jd.benow.ca/用这个工具打开classes-dex... 继续阅读 >
202010-30 Android Studio4.0解决Gradle下载超时问题 问题描述当引入或者新建一个项目的时候,在引入gradle版本号的时候会报连接超时的错误:Gradlesyncfailed:Connectiontimedout:connect.IfyouarebehindanHTTP········解决方法一、更改项目中gradle设置,将gradle压缩包位置改为指定的位置打开文件中的设置,搜素gradle,修改gradle位置,指定文件地址为下载下来的gradle文件位置注意:此时你可能不知道自己去下载什么版本的gradle,需要查看文件结构设置中gr... 继续阅读 >
202010-30 Android Studio4.0导入OpenCv4.3.0的方法步骤 1、准备环境AndroidStudio4.0;官网下载:https://developer.android.google.cn/studio/(AndroidStudio安装之前首先需要确认电脑上是否安装好JAVA环境,具体安装可以参考其他大佬,本文不作为重点)OpenCv4.3.0;官网下载:https://opencv.org/百度网盘:链接:https://pan.baidu.com/s/1aC2E_LT8yFkyAKgZhcNPbg提取码:7bk12、新建工程双击打开AndroidStudio4.0点击红色方框创建新工程按照数字顺序名字自己定,下面两项会自... 继续阅读 >
202010-30 Android studio 混淆配置详解 混淆studio使用Proguard进行混淆,其是一个压缩、优化和混淆java字节码文件的一个工具。功能:Shrinking(压缩)、Optimization(优化)、Obfuscattion(混淆)、Preverification(预校验)四个操作。优点:1.删除项目无用的资源,有效减小apk大小;2.删除无用的类、类成员、方法和属性,还可以删除无用的注释,最大限度的优化字节码文件;3.使用简短无意义的名称重命名已存在的类、方法、属性等,增加逆向工程的难度。配置buildTypes{... 继续阅读 >
202010-30 Android如何获取子View的位置及坐标详解 一、View1.1、View概述视图(View)是一个容器,专门负责布局。表现为显示在屏幕上的各种视图,如TextView、LinearLayout等。1.2、View分类View主要分为两类,具体如下表格所示:类别示例特点单一视图即一个View,如TextView、EditText不包含子View视图组即多个View组成的ViewGroup,如RelativeLayout包含子View1.3、View类... 继续阅读 >