工作总结
文章平均质量分 60
adayabetter
每个人都会死很久,所以要好好活着,活出自己的精彩!!!
展开
-
问题定位及解决方案
Fragment在onCreate时,埋点逻辑才注册生命周期监听,懒加载时,setUserVisibleHint true先于onCreate执行,导致onVisible没有调用到,因此未走TrackUtil.onPageEnter方法,在页面离开时走onPageLeave,没有匹配一对pageEnter和PageLeave,所以不会上报2001页面事件。参考 HomeFragmentV3,懒加载,页面初始化时,未触发onVisible,需要做一次补偿。1.视频沉浸页快速滑动后,必现不能向下划动。原创 2023-04-24 16:41:09 · 694 阅读 · 1 评论 -
Mac AndroidStudio开发环境搭建
Mac AndroidStudio开发环境搭建。原创 2023-04-24 11:44:07 · 3074 阅读 · 0 评论 -
Android自定义ViewPager禁止横向滑动
自定义ViewPager,复写 canScrollHorizontally 方法,禁止横向滑动。原创 2023-02-23 19:59:24 · 978 阅读 · 0 评论 -
Android 字体大小自适应 二阶贝塞尔曲线动画
连续调用setSpan时参数Object what不能使用同一个引用。SpannableStringBuilder使用注意。TextView字体大小自适应。否则只有最后一个设置有效。二阶贝塞尔曲线动画效果。原创 2023-02-16 11:26:56 · 277 阅读 · 0 评论 -
Android 富文本 SpannableString 支持网络图ImageSpan
实现思路: 在文本前加空格占位,使用默认图填充,下载网络图,下载完成时替换默认图。CenterVerticalImageSpan 实现图片在文字中居中效果。图片居中: CenterVerticalImageSpan.java。富文本 SpannableString 支持网络图。原创 2023-02-16 11:02:25 · 1319 阅读 · 1 评论 -
关于数据收集的简化思考:结构化View数据自动跟随UI变化而更新
数据根据UI变化更新,实现思路原创 2022-12-06 16:57:57 · 292 阅读 · 0 评论 -
SharedPreferences工具类 putStringSet 失效问题注意
SPUtil 工具类实现1.注意HashSet对象引用为同一个,可能不会触发更新。需要拷贝数据到新的Hashset2.在putStringSet 调用之前,注意先 clear(),不然已经存在该 key了,value值不会更新。原创 2022-11-05 11:36:19 · 403 阅读 · 0 评论 -
Android多语言资源热更新方案AssetsManager
动态更新多语言文案AssetsManager原创 2022-10-12 11:34:51 · 1940 阅读 · 1 评论 -
一些代码经验分享
一些Android代码经验分享原创 2022-10-10 19:27:12 · 394 阅读 · 0 评论 -
RecyclerView快速上下滑动,crash原因分析及解决
RecyclerView快速上下滑动,crash原因分析及解决异常日志:java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position--------- beginning of crash05-31 16:03:37.218 E/AndroidRuntime(21081): FATAL EXCEPTION: main05-31 16:03:37.218 E/AndroidRuntime(21原创 2022-05-31 17:32:56 · 696 阅读 · 0 评论 -
链式调用,当一个逻辑执行完成后,继续向下执行另一个逻辑
链式调用,当一个逻辑执行完成后,继续向下执行另一个逻辑使用场景:如跳转第三方App,优先使用A方式,当A方式失败后,则使用B方式;若B方式也失败则使用C方式,等等…实现步骤:构造公共抽象父类 Jump.javaJump是父类,提供成功、失败回调设置;启动跳转start方法,都为final,子类不可覆盖。jump为抽象方法,子类必须实现。父类提供方法框架,跳转失败后,尝试使用下一种方式跳转(next),具体逻辑子类各自实现。public abstract class Jump {原创 2020-10-15 16:00:54 · 463 阅读 · 0 评论 -
使用泛型继承类,实现方法重载,避免使用instanceof判断类型
使用泛型继承类,实现方法重载,避免使用instanceof判断类型代码示例代码示例基类:BaseNewsHolder.javapublic class BaseNewsHolder<T extends NewsBaseInfo> extends RecyclerView.ViewHolder implements View.OnClickListener {public BaseNewsHolder(@NonNull View itemView) { super(it原创 2020-08-20 14:36:54 · 346 阅读 · 0 评论 -
ViewPager嵌套ListView滑动冲突解决,ViewPager内容按照元素最大高度显示
ViewPager嵌套ListView滑动冲突解决,ViewPager内容按照元素最大高度显示效果图:矩形区域是可以横向滑动的,里面嵌套listview,若不处理,容易出现滑动冲突。参考代码:自定义ViewPagerpackage com.**.common.view;import android.content.Context;import android.support....原创 2019-12-05 17:36:43 · 850 阅读 · 1 评论 -
通过ContentObserver监听数据库某表的增加、删除、更新动作,实现listView异步单项Item的刷新
如何使用ContentObserver 使用ContentObserver的步骤: 1.继承ContentObserver,重载父类的构造方法,实现onChange方法,可根据其中的Uri参数区分不同的动作 2. 注册内容观察者。 context.getContentResolover().registerContentObserver(Uri uri, boolean not原创 2017-11-17 12:25:06 · 2127 阅读 · 0 评论 -
解决自定义图库图片缩略图显示错乱的问题
解决自定义图库加载图片时,缩略图显示错乱的问题。 问题描述: 自定义图库里的图片缩略图显示重复,且有些位置显示空白。 出问题的代码如下: @Override public View getView(int position, View convertView, ViewGroup parent) { String pa...原创 2018-04-13 15:43:54 · 903 阅读 · 0 评论 -
Android Activity 中阻止自动弹出系统软键盘
Android Activity 中阻止自动弹出系统软键盘 有时需要在Activity中阻止自动弹出系统软键盘,比如已经自定义了输入盘,不希望系统再自动弹出软键盘,这样会同时存在两个输入键盘,可能影响用户体验。阻止自动弹出软键盘的方式一需设定Activity的android:windowSoftInputMode属性为 stateHidden<activity an...原创 2018-04-17 16:34:06 · 7705 阅读 · 1 评论 -
Android 7.0”锁屏状态下拉视频,界面显示半屏“问题分析整理
Android 7.0锁屏状态下拉视频,界面显示半屏问题分析整理 在适配Android 7.0时,出现了在锁屏(灭屏&加锁)状态下,发起视频呼叫,界面显示为半屏的问题。 在亮屏时,显示是正常的,没问题。对比两次的日志,初步有如下分析。1. 比较日志初步分析APP安装成功后,第一次拉视频在亮屏或锁屏下,有以下结果。 @1. 亮屏。 第一次拉视频时亮屏,打印M...原创 2018-04-08 19:09:55 · 775 阅读 · 1 评论 -
Android监听系统输入法键盘弹出显示与隐藏事件
Android监听系统输入法键盘弹出显示与隐藏事件 有时候需要监听Android系统输入法的弹出显示事件,比如:微信聊天时,不管你当前在聊天中的什么位置(上滑查看消息历史),每当你点击输入框时,都会自动帮你聚集到最新的聊天记录。 而android系统没有提供对应的API来监听输入法的显示与隐藏,那就需要我们自己来实现了。 通过布局的高度变化来间接实现监听输入法的弹出事件,布局高度的变化监听有不同的方原创 2017-12-16 12:24:18 · 10486 阅读 · 1 评论 -
Android仿微信发送语音消息动态提示,支持上滑取消发送
Android仿微信发送语音消息动态提示,支持上滑取消发送 先来几张图说明一下,简单直接: 是不是看了图片就秒懂 了。 下面来分析代码实现,直接撸代码。 主页面 AudioSendActivity.javapackage com.example.main;import android.app.Activity;import android.app.Ale原创 2017-12-15 09:21:25 · 3788 阅读 · 2 评论 -
Toast执行完makeText之后的代码不执行(子线程中调用Toast显示异常分析)
Toast执行完makeText之后的代码不执行(子线程中调用Toast显示异常分析) 场景再现: 在线程的回调中增加了toast逻辑,但是没有弹出。 异常定位分析: 通过Handler在线程回调时发送Msg到主线程中Handler的handleMessage,在handleMessage中处理Toast逻辑**原创 2017-12-12 11:20:10 · 1613 阅读 · 3 评论 -
Android 图库更新同步问题总结(包含增加图片、删除图片)
Android 图库更新同步问题总结(包含增加图片、删除图片) Android中有时需要更新图库来同步图片等信息。 比如:1. 下载图片成功,并且保存到本地了,此时去图库查看,发现依然没有更新出来; 2. 清空应用内的图片,递归删除某目录下的图片,图库没有及时刷新。增加图片,更新图库关键代码在需要更新图库的地方(比如下载图片成功的回调中)调用// update...原创 2018-04-26 14:53:52 · 3392 阅读 · 0 评论 -
Android Preference 调用setDefaultValue设置默认值不生效;应该使用setValueIndex
Android Preference 调用setDefaultValue设置默认值不生效;应该使用setValueIndex 如题,希望在ListPreference中设置一个默认值,且不能被设置为其他值。(即:不能点击更改值) 详细描述:比如,当判断是某种类型的机器时;不支持前置摄像头采集视频,只能使用后置摄像头。其他类型的机器,可选前置、后置摄像头。上代码: 设置xm...原创 2018-05-14 15:07:40 · 4619 阅读 · 0 评论 -
Android 7.0 设置图案解锁,在锁屏状态下拉视频/推送视频,显示黑屏问题分析
Android 7.0 设置图案解锁,在锁屏状态下拉视频/推送视频,显示黑屏问题分析 如题所述,在Android 7.0上设置图案锁;在锁屏状态下,拉该终端的视频或者像该终端推送视频,可能会出现显示黑屏的问题。 问题分析:视频显示是在SurfaceView上,通过打印日志发现,在拉该终端的视频,终端会打开系统摄像头进行视频采集;设置了camera.setPreviewCall...原创 2018-05-08 17:16:49 · 661 阅读 · 1 评论 -
Android 异常 Unable to add window -- token null is not for an application
Android 异常 Unable to add window – token null is not for an application异常信息如下:05-28 10:14:56.882218 16278 16278 D crash log: android.view.WindowManager$BadTokenException: Unable to add window -- t...原创 2018-05-28 15:08:04 · 1130 阅读 · 0 评论 -
Android UI 适配相关概念及方法
Android UI 适配相关概念及方法UI适配相关概念 分辨率:整个屏幕的像素数目,为了表示方便一般用屏幕的像素宽度(水平像素数目)乘以像素高度表示,形如1280x720,反之分辨率为1280x720的屏幕,像素宽度不一定为1280 屏幕密度:表示单位面积内的像素个数,通常用dpi为单位,即每英寸多少个像素点 px:长度单位,以具体像素为单位...原创 2018-07-16 10:52:51 · 825 阅读 · 0 评论 -
Android 学习网站汇总
技术博客(Java)<DT><H3 ADD_DATE="1515811987" LAST_MODIFIED="0">技术博客(Java)</H3> <DL><p> <DT><A HREF="http://www.cnblogs.com/原创 2018-07-18 17:40:16 · 2291 阅读 · 0 评论 -
Android 异步消息处理机制的几种实现
Android 异步消息处理机制的几种实现 1、概述 Android需要更新ui的话就必须在ui线程上进行操作。否则就会抛异常。 假如有耗时操作,比如:在子线程中下载文件,通知ui线程下载进度,ui线程去更新进度等,这个时候我们就需要用到异步消息处理。 一、什么是Handler Handler是Android提供用来异步更新UI的一套机制,也是一套消息处理...原创 2018-07-13 15:27:50 · 2714 阅读 · 0 评论 -
Android白板方案调研
Android白板方案调研 1.参考GitHub开源工程: https://github.com/guanpy/WhiteBoard 2.参考GitHub开源工程: https://github.com/dsbGenius/WhiteBoard 3.主要分析白板的实现方案,以及可以优化的地方。 4.WhiteBoardGenius项目中问题记录: @1. 横屏时,文...原创 2018-07-13 16:48:51 · 4705 阅读 · 4 评论 -
Android 白板代码实现
Android 白板代码实现上一篇文章 Android白板方案调研 讲述了Android 白板实现的一些细节和问题整理。本篇主要从代码角度展现Android 白板。白板的调用:public class CanvasDemoActivity extends Activity { @Override protected void onCreate(Bund...原创 2018-07-13 17:35:52 · 4303 阅读 · 10 评论 -
Java从网络中请求获取JSon数据以及解析JSON数据----(自创,请注明)
Json的数据获取,从网络上获取Json数据。以及解析JSON数据,包括用Google的GSON来解析JSON原创 2015-04-03 16:14:57 · 5264 阅读 · 0 评论 -
通过AsyncQueryHandler异步对数据库进行增删查操作
AsyncQueryHandler的作用异步对数据库进行增加、删除、更新、查询操作。避免在主线程中直接调用数据库相关操作导致的ANR异常。AsyncQueryHandler使用步骤 自定义继承AsyncQueryHandler的子类,实现相关的方法。 void onDeleteComplete(int token, Object cookie, int result)原创 2017-11-21 16:01:11 · 995 阅读 · 0 评论 -
Android TV开发--实现屏保图片云端可配置
功能描述: 在TV上,出厂时会默认配置一组屏保图片,用作屏保初期展示。 但作为运营的工具之一,当然会希望屏保图片可以在云端配置,若未配置则采用系统默 认图片。 若配置了一组新的图片,则需要下载到本地,在下次启动屏保时用来展示。功能明确点:1.屏保check时机:屏保启动2.新屏保使用时机:屏保启动3.屏保从云端下载图片后保存路径:../files/screen原创 2016-04-19 21:06:06 · 4105 阅读 · 10 评论 -
Android TV开发--实现延时关机功能(二)逻辑实现
模块功能描述(总述) 上一篇文章:Android TV开发--实现延时关机功能(一)功能描述 讲的是延时关机整体功能描述以及UI效果,这篇文章将着重讲解逻辑实现。按照功能模块分为3部分:关机App、关机Service、Launcher 模块图如下: 关机App模块主要功能:1.展示UI设置延时时长 2.取消延时关机 3.取消延时对话框倒计时功能1.展示UI设置原创 2016-04-17 19:53:08 · 5097 阅读 · 2 评论 -
Android之 ImageView中setId()的作用
Android中ImageVIew动态生成时,setId()方法的作用原创 2015-04-14 10:48:30 · 4630 阅读 · 2 评论 -
Android之Timer&TimerTask的使用注意
Timer&TimerTask简介:在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务。比如UI上的控件需要随着时间改变,我们可以使用Java为我们提供的计时器的工具类,即Timer和TimerTask。 Timer是一个普通的类,其中有几个重要的方法;而TimerTask则是一个抽象类,其中有一个抽象方法run(),类似线程中的run()方法,我们使用Timer创建原创 2015-04-14 17:06:59 · 3152 阅读 · 0 评论 -
自定义ViewFlow使用,ScrollView中嵌套ViewFlow滑动问题解决(---My 20150407)
ScrollView中嵌套ViewFlow,滑动问题解决原创 2015-04-07 15:12:55 · 1535 阅读 · 1 评论 -
Android之开源控件ViewFLow学习笔记【含下载地址】--(原创-20150407)
ViewFLow的使用原创 2015-04-07 13:11:10 · 1969 阅读 · 2 评论 -
自定义View之onMeasure()
可以说重载onMeasure(),onLayout(),onDraw()三个函数构建了自定义View的外观形象。再加上onTouchEvent()等重载视图的行为,可以构建任何我们需要的可感知到的自定义View。本节我们探索自定义View中onMeasure()起到了什么样的作用,题外要插的一句是,Activity框架,View框架中大量的on函数基本上都应用到了Template模式,掌握转载 2015-04-06 21:47:49 · 520 阅读 · 0 评论 -
Android布局之View.measure()动态量取高度并设置布局--(例:动态计算评论高度并显示)
Android 动态计算布局,动态设置显示View.measure(),ViewGroup.addView()方法使用原创 2015-04-11 11:18:16 · 4578 阅读 · 0 评论 -
Android中设置Dialog提示框无背景色--背景无遮罩透明
Anroid自定义Dialog的使用,设置背景透明原创 2015-04-10 18:48:09 · 9439 阅读 · 0 评论