Android
文章平均质量分 65
Android小码家
工作,学习,享受生活
展开
-
Docker编译nanopc-t4源码流程介绍
实操编译nanopc-t4源码原创 2024-06-24 17:36:19 · 443 阅读 · 1 评论 -
自定义指示器Indicator&Tablayout
太久没发CSDN,最近排名降得厉害,因为平时比较忙,加之内卷严重,着实有心无力,此次抽空发一个项目中用到的控件,懒得去找了自己撸一个,放这里方便大家也方便自己。原创 2024-05-14 09:35:01 · 513 阅读 · 0 评论 -
Android Studio for Platform (ASfP) 使用教程
归纳的很清楚,下载Repo并下载源码->可以参考我的。在实际编译完成后是无法正常运行的,这个是很大的。,很多人都是在这一步卡住了很久。PS:安卓官网这步给出的。真正能在模拟器上运行的是。原创 2023-10-12 10:12:12 · 2851 阅读 · 0 评论 -
验证码自定义控件
【代码】验证码自定义控件。原创 2023-09-26 10:42:19 · 210 阅读 · 0 评论 -
FFmpeg、x264以及fdk-aac 编译整合
FFmpeg、x264以及fdk-aac 编译整合流程梳理原创 2023-07-12 14:35:23 · 1216 阅读 · 0 评论 -
FFMPEG 编译流程(极客版)
依葫芦画瓢 全程30分钟从零完成ffmpeg编译,主打的就是一个极客。原创 2023-07-10 19:42:36 · 490 阅读 · 0 评论 -
模拟Toast 自定义提示框
前言为满足产品需求,发现现在的ToastUtils不是太重就是不太满足需求,这边写个简单易用的工具,几十行代码解决的问题,还要啥轮子。自动消失相对锚点位置可配置,正中间,左中,右中,下中,等高宽自适应。原创 2023-07-06 18:40:45 · 859 阅读 · 0 评论 -
手势监听控件简单实现
需求是是实现一个可滑动与缩放得功能,说实话控件很多,但是开发者需要具备一定的定制能力,所以简单的功能就不要借助轮子,尽量的自己动手完成,会有一定的成就感和自我提升,以下其实也是拿来主义,最好是重写touch事件,这里记录一下,希望对大家有所帮助//min缩放系数 private val MaxScale = 8f;原创 2022-11-11 18:33:02 · 313 阅读 · 1 评论 -
aab打包语言缺失与bundletool的FileAlreadyExistsException解决
主要是language设置为false,表示不进行分包。原创 2022-09-15 14:45:41 · 971 阅读 · 0 评论 -
图解Activity启动流程
看一百遍不如做一遍,道理都懂,那么赶紧做出第一步吧!原创 2022-09-09 16:28:55 · 3103 阅读 · 0 评论 -
WIFI Util 兼容Android Q
Android适配是老生常谈的问题,现在来看看特别是扫描和连接wifi常常会出现失败的情况,明明是用的标准API为什么却不成功呢?这个时候就得查阅谷歌官方文档一探究竟了。原创 2022-08-24 08:53:58 · 875 阅读 · 0 评论 -
NFC简析与应用
最近在玩NFC的功能,感觉NFC的蕴含了巨大的能量,脑海中浮现各种骚操作,心情有点小激动。当然网上不乏许多优秀的文章,这里笔者只是给出自己得理解,方便快速掌握。原创 2022-08-23 19:10:27 · 1458 阅读 · 0 评论 -
AIDL原理快速理解与应用
距离上次玩AIDL的时候还是2年前,由于最近在看Android源代码,发现大量的AIDL的应用,于是重温了下,网上的文章大都讲得繁琐,可能是我搜索得方式不对,但是开发者得需求就是最短时间理解和应用,下面花几分钟快速掌握原创 2022-05-12 10:25:36 · 359 阅读 · 1 评论 -
PathView手绘路径自定义控件
前言代码很简单,看看就懂源代码 /** * 文件名:PathView * 描 述: * 作 者: * 时 间:2022/3/14 14:10 */import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Path;import android.graphics.PathMeasure;import原创 2022-04-13 09:59:23 · 529 阅读 · 0 评论 -
StepView自定义控件功能实现
功能介绍支持更多步全屏适配,支持横屏可精细化步进操作,如下支持小点先行当然可以更多定制操作,下面给出所有源代码,代码很简单,根据需要修改。效果图第一步第二步第三步支持小点先行修改i <= step_number即可 if (i <= step_number) { dotPaint.setColor(color_ffb93E); } else { dotPaint.setColor(color_666666); }支持更多步原创 2022-04-12 09:23:08 · 400 阅读 · 0 评论 -
Android 7-11图片裁剪与分享适配
Android 7-11图片裁剪与分享适配原创 2022-02-17 19:34:27 · 1929 阅读 · 0 评论 -
用户引导页简单应用
**不能做铺路人,做个引路人也好~**此文着重讲解张鸿洋大神的HighLightView的使用细节,大佬的库用过不少,或多或少的与产品业务有所不同,或者设计瑕疵的地方,无可厚非,此时作为以为优秀的百度开发者,我们应该有阅读甚至修改源码的能理,这样才能举一反三,融会贯通。原创 2021-12-16 13:00:19 · 1936 阅读 · 0 评论 -
语言切换适配
前言拿来主义而已, 也很感谢创作者的分享精神,开源有益,共同进步才能走得更远,旧版旧版本仅适配API28以下版本高版本环境 AS会提示 Deprecated/* * 过时 App中维护 * 注释: * @author maqi * created at 2021/12/15 11:39 * */ @Deprecated("") private fun switchLanguage() { val language = xxx原创 2021-12-16 11:07:42 · 684 阅读 · 0 评论 -
Android Exif 解析
写入val exifInterface = ExifInterface(mPicPath);//val datetime = exifInterface.getAttribute(ExifInterface.TAG_DATETIME);//Log.d("exifInterface", "datetime " + datetime)exifInterface.setAttribute(ExifInterface.TAG_USER_COMMENT, tempMatrix)exifInterfa.原创 2021-11-03 13:47:59 · 1388 阅读 · 0 评论 -
Android 常用API自查表(二)
Android 常用API自查表StatusBarUtil(沉浸式状态栏)StatusBarHeightView使用StatusBarUtil(沉浸式状态栏)切记关闭状态栏 自动填充android:fitsSystemWindows="false"import android.annotation.SuppressLint;import android.annotation.TargetApi;import android.app.Activity;import android.conten原创 2021-10-21 13:43:32 · 1381 阅读 · 0 评论 -
Kotlin Coroutines(协程)
Kotlin Coroutines(协程)原文链接:https://blog.dreamtobe.cn/kotlin-coroutines/发表2017-08-20在前面的文章,我们提到了kotlin的基本语法、为什么选用kotlin、根据《Effective Java》Kotlin语法层面的优化、kotlin单元测试编写以及kotlin对包大小影响、kotlin与Java对...转载 2019-04-28 17:31:49 · 6010 阅读 · 1 评论 -
Gson替代方案Moshi使用教程
原文链接:新一代Json解析库Moshi使用及原理解析推荐理由硬伤:Gson无法解析设置Kotlin默认参数 全新JsonAdapter 解析效率高 报空异常(即是优点也是缺点)概述Moshi是Square公司在2015年6月开源的有关Json的反序列化及序列化的框架,说到Json,大家应该很快想到Gson,FastJson以及Jackson等著名的开源框架,那为什么还需要M...转载 2019-04-11 11:03:52 · 6068 阅读 · 0 评论 -
Android 持续集成基础教程
文章目录前言:优势Android Studio 配置目录结构config.yml相关命令行keystore.propertiesbuild.gradleCircleCI 配置配置自动编译总结好奇心是学习的第一步前言:只因在人群中多看了你一眼,于是我决定深挖一下这个标签,一不小心边打开了Android持续集成的大门,其实除了CircleCI大家也应该有听过一个本地版本的Jenkins,Jen...原创 2019-04-25 16:02:27 · 1188 阅读 · 0 评论 -
国际化之使用ResourceBundle.getBundle详解
首先新建一个Resources文件夹 新建有个Resource Bundle ‘DigitalDialog’ Resources 效果如下 中文tips.state.initializing=\u9ea6\u514b\u98ce\u542f\u52a8\u4e2dtips.state.wait=\u8bf7\u7b49\u5f85tips.state.ready=\u8bf7\u8bf4原创 2018-01-31 14:06:23 · 9633 阅读 · 1 评论 -
QMUI_Android github 上的开发利器
怎么说呢 如果有一个这样的工具 既可以灵活配置 又全面丰富的老少咸宜的库是多么的美好的存在。答案是:不存在的。但是又有多少人放弃了?都在为之努力。不正是这种开源精神才能让互联网迸发活波生机吗?身为互联网浪潮中的一员,也需要时刻记着,学无止境,再一次一次次的科技浪潮中,只有勇于投身当中者才有绝地求生的可能,那些原地踏步者只有人仰马翻的结局,从15年跻身互联网行列当中,有幸见证洛基亚的衰败,站在移动...原创 2018-01-16 17:04:15 · 6022 阅读 · 1 评论 -
移动端屏幕适配dp dpi 720P values-sw480dp layout-sw720dp
对于这个历史遗留性问题每次回头处理起来着实让人头疼 解决方案有以下几种 1.张鸿洋已经实现了并且在githup上的AndroidAutoLayout 但是担心不好维护最终还是老实使用回dp了。2.一般来说设计师只需要更你说我这个图是几倍图你就放在相应的drawable文件夹即可,AS会为你做剩下的事情。至于字体大小或者控件高度,工具满天飞的现在设计师连dp都会给你标号的,是个Android程序原创 2017-09-11 15:47:11 · 4783 阅读 · 0 评论 -
类似EvenBus ( implementation 'me.drakeet.mailotto:mailotto:1.1.0')
说实话不知为何 EventBus 用得多了有种说不出的的感觉,总觉有点缺陷,同时也想使用一下新鲜的工具,毕竟技多不压身,但是翻看了作者的github发现居然是2016年底最后一次发布。。。也就是比较老的工具了,不由得自惭形秽,但是决定的事还是要做的, 如下研究一番。如题引入Mailbox使用方式 如下1:在需要收到通知的类中 加上标注 @OnMailReceived原创 2018-01-16 10:08:03 · 373 阅读 · 1 评论 -
键盘收起展开监听
KeyboardUtilsKeyBoardShowListener 重点是 KeyBoardShowListener 拿来主义者而已,分享一下,同时也怕自己忘记走弯路.public class KeyBoardShowListener { private Context ctx; public KeyBoardShowListener(Context原创 2017-11-14 09:49:34 · 1256 阅读 · 0 评论 -
JetPack快速开发模板
前言:就在上个月创建JetPack专栏以来,我发现我的博文被阅读的次数只有可怜十位数,甚至个位数那么少,于是乎自行翻看原来的文章,发现确实很容易出现断片的感觉,因为大多数是基于Github某些知名项目做得源码分析,以及相应的举一反三,需要依靠读者亲身阅读源码并动手尝试才能有所体会,为了不让读者看不懂,也不让自己隔段时间查阅出现断片的情况,笔者动手绘制了流程图以及加入源码出处的链接,可就是这样阅...原创 2020-02-29 16:05:59 · 1598 阅读 · 0 评论 -
MVP一键生成 Template模板开发与快速开发神器
这边分享一下自己这周的学习成果。早就听说MVP很火,所以就观瞻了一下JessYanCoding大神github,确实很不错····。为什么这么说呢?因为看得我一脸懵逼,可是又不能说出来,所以就只能说一句不错咯。其实作者的MVP真的很不错,奈何项目过重,就只能自己动手量身定制一发。话说回来如果不想太多了解mvp的只想去体验一把的朋友可以试一试。学习之前我们先思考一下几个问题。1.Temp...原创 2018-02-06 14:42:54 · 2851 阅读 · 0 评论 -
android 7.0 PopWinow BUG
1.showAsDropDown()的全屏BUGmPopupWindow = PopupWindow(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT) .apply { val inflate = View.inf原创 2018-01-16 09:30:32 · 479 阅读 · 0 评论 -
kotlin中介绍PopupWindow中textView?.isSelected = false的不变色bug
在kotlin中的写法和java中基本一样 因为经常用到就直接粘在这里了 private fun showSellerPop() { if (mPopupWindow == null) mPopupWindow = PopupWindow(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.L...原创 2017-12-14 09:58:41 · 1088 阅读 · 0 评论 -
多个 PopWindow 堆叠,setTouchOutSide无效 ,焦点抢夺等问题解决
先说说案例 我的项目里有一个搜索功能 是在Activity上直接弹窗 之后选择时间需要弹出一个PickTimeView的时间选择器,这控件个在github上有很多。由此所衍生出了许多问题,让人摸不到头脑。先看看这个能否帮到你,如果不可以在尝试下面的操作。mPopWindow.setFocusable(false);mPopWindow.update();先上代码 PopupWindow...原创 2018-04-10 10:52:56 · 836 阅读 · 0 评论 -
queryIntentActivities快速获取自己App内的所有指定的Activity 并设置跳转
//这个在AndroidManifest中加入 CATEGORY_SAMPLE_CODE 标记 <activity android:name="com.xxx.xxx.xxx.activity.TestActivity" android:configChanges="orientation|keyboardHidden|screenLayout原创 2018-01-31 14:35:02 · 5906 阅读 · 0 评论 -
Android 后台运行那些事
这里我告诉大家一些最快最实用的解决方法,这些都是放在我项目中成功实现的。Service 保活服务相互保活是一个很流氓的方式 而且随着sdk升级 这种方式已经不能在高版本使用了; 解决方式: 1*一种比较文明的方式,这也是大多数注重用户体验app使用的* 下面这张是我常用的app,因为常常把它放在后台记录行程,所以有一天突然app跳出提示说被意外杀死,要我怎么做怎么做. 其实说的很明白了原创 2017-06-30 17:16:23 · 1702 阅读 · 0 评论 -
TaskAffinity与launchMode实验总结
参考依据 - [https://www.cnblogs.com/yyz666/p/4674173.html](https://www.cnblogs.com/yyz666/p/4674173.html)- [https://www.cnblogs.com/ldq2016/p/6953106.html](https://www.cnblogs.com/ldq2016/p/6953106.html)-...原创 2018-03-16 10:07:43 · 223 阅读 · 0 评论 -
gradle用法笔记
一、编译失败org.gradle.internal.exceptions.LocationAwareException查看编译信息gradlew assembleDebug --info查看依赖关系gradlew dependencies app:dependencies原创 2020-12-24 11:20:45 · 211 阅读 · 0 评论 -
面向切面编程(AOP)各种麻烦的验证一键搞定
传送门 我已经上传到我GitHub 还会继续更新 比较极客的我们,只关心如何使用方便,源码过程什么的都不必纠结。毕竟人生苦短,代码敲完之余还有妹子和游戏等着我们。咳咳..扯远了。下载完成之后最好是新建工程再import module 一下 直接打开不了原创 2017-09-19 14:36:50 · 436 阅读 · 0 评论 -
View自定义单击与双击事件
import android.os.Handler;import android.view.MotionEvent;import android.view.View;/** * 双击与单机监听 */public class OnDoubleClickListener implements View.OnTouchListener { private Handler handler = new Handler(); ; private int count = 0;//原创 2021-08-10 16:52:23 · 800 阅读 · 0 评论 -
Rxjava多场景操作集合
串行 /*获取 版本信息*/ private fun toGetVersion() { val appvserison_ob = Observable.create(ObservableOnSubscribe<Int> { mGuideInterface?.getAppversion() it.onNext(1); it.onComplete(); })/*.flatMap<原创 2021-07-08 10:13:32 · 327 阅读 · 0 评论