Android
文章平均质量分 72
从技术到艺术
这个作者很懒,什么都没留下…
展开
-
Android子线程更新TextView思考
目录起因起因需求测试过程中发现一个bug,表现为TextView内容从短文案更新成长文案后内容被截断,最终原因定位为子线程创建并更新了TextView的内容原创 2021-07-04 15:02:19 · 1639 阅读 · 2 评论 -
Handler运行机制
Handler是一个很重要的知识点,为了方便记忆用一张图概括其运行流程其中在MessageQueue#next方法中还有些比较重要的细节原创 2021-02-28 23:06:59 · 201 阅读 · 0 评论 -
Retrofit浅析
目录介绍使用原理Retrofit源码官方文档介绍A type-safe HTTP client for Android and Java.官方给出的一句话描述:适用于Android和Java的类型安全的HTTP客户端。是Android工程中使用率很高的网络请求框架。使用官方给出的使用样例public final class SimpleService { public static final String API_URL = "https://api.github.com";原创 2021-01-02 00:06:11 · 435 阅读 · 2 评论 -
LeakCanary浅析-内存泄漏对象检测
依赖分析./gradlew :app:dependencies --configuration compile原创 2020-11-22 23:07:54 · 448 阅读 · 0 评论 -
文字全屏轮播效果实现
刷短视频时看到一个全屏文字滚动播放的效果,如图想了下,其实效果不难实现,沉浸式+TextView跑马灯效果即可实现基础版1、设置沉浸式这里采用了给Activity设置style的方式,res/values/styles.xml中<resources> ... <style name="AppFullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item原创 2020-06-28 00:26:20 · 1334 阅读 · 0 评论 -
侦探系列-照片隐藏信息提取
有没有想过一张照片中除了能看到的图像,还隐藏了多少信息?一、相关信息了解怀着好奇心开启对图片信息的探索之旅。首先了解到的一个名词EXIF,引用维基百科上的解释可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的文件格式,可以记录数码照片的属性信息和拍摄数据。其中包含的信息,同样来自维基百科...原创 2020-04-19 21:06:42 · 4037 阅读 · 0 评论 -
MessageQueue之IdleHandler
IdleHandler是什么?IdleHandler是包含在MessageQueue类中的一个接口,内部只包含一个方法,在消息队列空闲(没有消息或者第一个需要处理的消息在将来执行)时被回调publicstaticinterfaceIdleHandler{//当消息队列空闲时会被回调,返回值表示是否会被重复执行//返回true,会在mIdleHandlers...原创 2020-01-05 19:37:52 · 582 阅读 · 1 评论 -
Android Profiler之CPU
Profiler是Android Studio中提供的一个分析工具,它提供了四个维度的分析,CPU(函数调用)、MEMORY(内存分配)、NETWORK(网络流量)、ENERGY(耗电量)。这一篇根据官方的介绍针对CPU维度提供的分析功能进行下整理。CPU维度下提供了四种分析方式,Call Chart、Flame Chart、Top Down、Bottom Up。Call Chart(调...原创 2020-01-05 19:35:22 · 956 阅读 · 1 评论 -
MessageQueue之同步屏障
查看MessageQueue源码时看到一个没有没有听过的概念“同步屏障”,这个是什么概念?带着疑问一探究竟。MessageQueue有这么一个方法public int postSyncBarrier() { return postSyncBarrier(SystemClock.uptimeMillis());}private int postSyncBarrier(lo...原创 2019-12-02 00:37:33 · 665 阅读 · 0 评论 -
给android手机划代
目录DeviceInfo获取硬件信息的逻辑1、CPU核心数2、CPU频率信息获取3、获取总RAMYearClass的逻辑1、2016年的分类方式(主要使用的划分年代方式)2、2014年的分类方式(兜底策略)在学习性能优化相关的知识时看到一个比较有意思的开源项目,Facebook开源的device-year-class(https://github.com/faceb...原创 2019-11-24 10:58:28 · 380 阅读 · 0 评论 -
RecyclerView实现Gallery效果
概述最近看到一款常用的app上头图的滑动效果比较不错,于是想自己动手实现下效果预览先上图后说话实现这里我使用RecyclerView实现这个效果,其中重点和难点在于实现分页效果和滑动动画使用RecyclerView代码如下(从百度随意找了几张图片作为填充数据,如果涉及版权问题请联系删除):public class MainActivity extends AppCompatActi...原创 2019-05-02 11:15:42 · 1662 阅读 · 0 评论 -
TextView设置文字点击半透明
前一段接到一个需求,要求一个按钮在点击时背景颜色不变,文字半透明效果这里使用selector进行实现:layout<TextView android:id="@+id/tex_pressed_translucent" android:layout_width="50dp" android:layout_height="50dp" ...原创 2019-02-17 22:06:38 · 747 阅读 · 0 评论 -
SpannableString字体大小自适应
背景最近修复一个bug时遇到一个问题, TextView中显示的是SpannableString, 原有项目中自定义TextView是通过二分法找到一个合适的TextView能将字体完全展示的TextSize, 但是通过AbsoluteSizeSpan给SpannableString设置的字体大小是不受到TextView的textSize属性影响的,所以SpannableString的自适应需要...原创 2019-01-01 22:01:45 · 1708 阅读 · 0 评论 -
Activity和Fragment的生命周期
不包含销毁重建1、打开activity12、跳转其它activity23、从activity2返回activity14、activity1点击home键5、点击home键后重新进入activity16、activity1点击返回键包含销毁重建1、打开activity1同上正常情况2、跳转到activity23、从activity2返回activity14、点...原创 2018-10-20 18:48:31 · 410 阅读 · 0 评论 -
LayoutInflater的inflate方法使用
Android动态添加布局时经常会用到LayoutInflater的inflate(int resource, ViewGroup root, boolean attachToRoot) 方法,但是inflate方法的后两个参数很让我疑惑。 官方文档的解释如下: 翻译成中文的大概意思是: 如果attachToRoot为true,可选视图是生成的层次结构的父级,如果attachToRoo...原创 2018-07-20 13:34:42 · 3686 阅读 · 0 评论 -
TextView显示文字上下有空白
如图背景为黄色的TextView中的字母到上下边都有一定距离 空白是什么经过一番搜索发现文字的绘制是以一个叫做基线(baseLine)的位置为准的,而不是以View的左上角为准文字的位置是受到几个值影响的,涉及到Paint.FontMetrics这个静态内部类,几个变量代表的内容也不是坐标轴上点的位置,而是以baseLine为准在Y轴方向的距离public static c...原创 2018-07-05 18:53:49 · 2290 阅读 · 0 评论 -
android手机的扩容教程,解决手机系统空间不足
android手机的扩容教程,解决手机系统空间不足通过将手机中的应用搬到SD卡中实现手机扩容原创 2017-02-05 22:30:21 · 50077 阅读 · 3 评论 -
android属性动画效果的实现之ObjectAnimator
android属性动画效果的实现之ObjectAnimator原创 2017-03-10 23:01:21 · 570 阅读 · 0 评论 -
androidUI界面的更新方法
androidUI界面的更新方法学习原创 2017-03-17 23:03:09 · 849 阅读 · 0 评论 -
android6.0(API23)以上动态申请权限
android6.0(API23)Camera2 动态申请权限原创 2017-04-25 21:24:35 · 2990 阅读 · 1 评论 -
Handler暂停接收Message的实现
Handler暂停接收Message的实现原创 2017-06-10 14:39:52 · 1616 阅读 · 2 评论 -
IntentFilter匹配规则
Activity隐式调用 IntentFilter匹配规则原创 2017-05-04 13:49:59 · 353 阅读 · 0 评论 -
Android通过两级缓存加载图片
Android两级缓存(LruCache和DiskLruCache)加载图片原创 2017-06-14 16:29:09 · 312 阅读 · 0 评论 -
RecyclerView item多布局显示新姿势
问题RecyclerView正在逐渐取代ListView,在使用RecyclerView中遇到了一个问题,需要在RecyclerView的固定位置设置不同布局的特殊Item,其中最大的问题在于不同类型data和View布局如何进行正确对应。思路将需要显示的不同类型数据都放到同一个容器中显示时根据不同的类型加载不同的布局实现在使用RecyclerView时最重要的一...原创 2018-04-30 11:25:57 · 1712 阅读 · 1 评论 -
Android Studio常用快捷键(windows)
代码查看Ctrl+F 文件中查找Ctrl+R 文件中替换Ctrl+E 最近打开过的文件Ctrl+N 打开类Ctrl+Shift+N 打开文件Ctrl+U 查看一个类的父类Ctrl+B 查看变量的声明Ctrl+Alt+H 查看方法的调用Ctrl+Shift+I 查看方法的实现Ctrl+H 显示类结构图Alt+1 快速打开或隐藏工程面板Ctrl+Shift+Alt+N 查找...原创 2018-05-29 13:15:48 · 206 阅读 · 0 评论 -
Android重写ImageView实现图片镜像效果
前两天朋友问我一个问题,如何实现从手机系统相册加载一张图片,实现拖拽、缩放功能并且能镜像显示,当时我的第一反应是继承ImageView,重写onDraw方法,下面就按照这个思路实现下需求。从系统相册选择图片打开系统相册采用隐式Intent,因为调用者需要接受返回的结果,所以使用startActivityForResult启动Activity,打开系统相册核心代码如下public fin...原创 2018-06-16 13:15:26 · 4654 阅读 · 3 评论 -
Android控制台常用命令
adb命令adb所在路径Android\sdk\platform-tools通过包名产看apk安装路径 adb shell pm path [packagename]aapt命令aapt所在路径Android\sdk\build-tools\xx.x.x查看未安装apk的包名等信息 aapt dump badging [apk路径]...原创 2018-06-17 10:42:35 · 4129 阅读 · 1 评论 -
给SeekBar的thumb设置点击事件
昨天朋友问我了解不了解SeekBar,他说想实现两个功能:禁止SeekBar手动滑动thumb 给SeekBar的thumb设置点击事件,但是没有现成的方法当时我还这没研究过SeekBar(说实话当时我还不了解SeekBar和thumb到底是什么。。。随手查了下才知道是SeekBar是进度条,thumb就是进度条上的滑块),所以决定动手实现下。SeekBar的使用由于没有使用...原创 2018-07-11 00:02:57 · 3144 阅读 · 0 评论 -
sdk中adb连接手机经常出现找不到设备的解决办法
学习android时间不长遇到了一个很让人头疼的问题,每次用真机调试程序的时候经常出现找不到设备的情况,相信也有人遇到过相同的情况,这个问题让我纠结了有一段时间,以前没有找到合适的解决办法,真一次又一次的插拔手机,实在不行就重启电脑,后来一次偶然的尝试无意之中解决了这个让人头疼的问题,下面我介绍一下我的解决办法:以前在网上查找过相应的办法,但是都是说用什么手机助手之类的软件解决,个人有强迫症不原创 2016-12-07 16:36:48 · 2457 阅读 · 0 评论