自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟的自我修养

All models are wrong, but some are useful.

  • 博客(54)
  • 资源 (2)
  • 收藏
  • 关注

原创 记录一次 WebView.pauseTimers 引发的问题及该方法的真实含义

问题背景:在某个 H5 页面可能会有视频信息,为了解决页面退出后视频继续播放的问题,在页面销毁时会对 WebView 进行一些回收销毁操作,其中包括 pauseTimers 操作。问题描述:同时打开两个 WebView 页面,关闭第二个页面,第一个页面中的部分操作不再响应。首先,这个问题是由于 pauseTimers 导致的,因为 pauseTimers 会暂停所有 WebView 的 l...

2018-11-02 17:28:21 5233 2

原创 关于 UsageStatsManager.queryUsageStats 的注意事项及 UsageStatsService 的简单原理

问题背景:目前需求统计应用的当天使用情况,在 5.0 以上有权限 android.permission.PACKAGE_USAGE_STATS,获取到该权限后可以通过 UsageStatsManager.queryUsageStats(int intervalType, long beginTime, long endTime) 方法查询到应用的使用情况。问题描述:第一天下午使用一些应用后,...

2018-11-01 19:20:45 14881 29

原创 关于在 @JavascriptInterface 方法中发现异常引发的思考

问题描述:在一次测试中,直接在 @JavascriptInterface 方法中调用了 WebView.loadUrl("javascript:xxx()");,结果 js 方法没有响应。当时以为是调用频繁或者页面刷新导致无法接收到消息,进一步测试发现在 Locat 中有输出日志:即 java.lang.RuntimeException: java.lang.Throwable: A Web...

2018-10-31 08:33:25 4000 1

原创 Android 解决自定义 CheckBox 样式时的背景显示异常问题

首先创建自定义样式文件<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawab

2018-06-26 14:51:33 2893

原创 Android Studio 自定义快捷注释模板

首先打开 Android Studio,选择工具栏的 File –> Settings –> Editor –> Live Templates,打开如下界面:接下来点击图中 “2” 所示按钮添加注释模板,首先选择 Template Group 创建一个新的分组,比如 “Custom Comment”,如下图:接下来选中新创建的分组,再次点击添加按钮,这次选择 Live Templa

2018-01-19 08:56:44 4280

原创 Android 解决 Fragment 懒加载并嵌套使用时子 Fragment 的 View 不填充

在前文 Android ViewPager 中 Fragment 懒加载 中介绍了 Fragment 懒加载的实现,在后期项目运用中对 Fragment 中 View 的加载也实现了在首次展示时才进行填充,结果遇到了如下一个问题:当 Fragment 被销毁重建时,其中嵌套的 Fragment 界面没有被展示,但是 isAdd() 结果为 true。研究后发现,在 Fragment 中嵌套

2018-01-18 14:29:24 2311

原创 Android ViewPager 中 Fragment 懒加载

在项目中经常会使用到 ViewPager + Fragment 结构,但是 ViewPager 默认会预加载当前 Fragment 左右各一个 Fragment,这样就做了一些多余操作,如请求了第二个页面的数据。我们这里并不想提前执行这些操作,希望等用户切换到某个 Fragment 才进行加载,所以需要取消预加载。在 ViewPager 中有个 void setOffscreenPageLimit

2018-01-18 13:36:24 817

原创 Android 状态栏透明和图标反色

public class BaseActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStatusTransparent();

2018-01-18 10:28:49 4082

原创 Android 设备唯一标识符之 MAC 地址

最近在研究 Android 设备的唯一标识符,需要能对用户设备进行唯一标识,并且在被刷机后还能识别出身份,目的是为了防止渠道作弊。研究过程发现一个关于 MAC 地址比较实用的点,这里记录并分享以下。Android 系统中提供了一些设备识别符,如 IMEI、ANDROID_ID 等,但这些标识符的稳定性和唯一性并不理想。在进一步研究手机 wifi MAC 地址的过程中发现,系统路径 /sys/clas

2017-12-23 21:45:14 4287

原创 Android 开发之编写可读代码

首先分享一句我比较喜欢的话 “任何一个傻瓜都能写出计算机可以理解的代码,唯有写出人类容易理解的代码才是优秀的程序员”。所以今天和大家分享一下入门级的编码规范,可能更适合在校生纠正自己的编码习惯,在初入职场时可以更快的融入团队。1. 命名规范这里总结的其实还是比较模糊的,我也看过一些网上的文章,个人感觉太长又比较枯燥,不太愿意读下去,所以这里基本是提纲式的总结,给大家提供需要注意哪些点的认知,一些具体

2017-11-16 13:00:12 873

原创 关于学业深造以及初入职场有感

博主今年刚毕业,由于之前初入职场,一直忙于工作和培训,对博客疏于维护,直到最近才准备恢复写作。网上关于技术的文章很多,大家善用搜索引擎可以学到很多知识,但是关于成长的分享并不多见,更难找到符合自身需求的经验。所以今天我想分享一下这半年来的感受,以一名应届毕业研究生的角度谈谈关于学业深造以及初入职场的经验。博主是在一所不知名大学读完了本科和硕士,以下仅是个人观点,仅供参考,不喜勿喷。关于学业深造其实

2017-11-14 11:12:44 3127 2

原创 Android自定义ProgressBar,内部显示图标和文字,文字被进度条覆盖时会变色

不多说,先上效果图: Android内置的ProgressBar很鸡肋,样式过于简单,现在需要一个内部能显示图标和文字的ProgressBar,同时,当进度条与图标和文字重叠时,图标和文字会相应变化颜色。这里的关键效果就在于变色的处理,我这里是通过设置相交模式实现这一效果的,应用了SrcIn模式,在图标和文字上方绘制一层白色图层,随progress进度调整图层宽度,当白色图层与图标和文字相交时,会

2017-03-23 13:09:43 12650 1

转载 RecyclerView侧滑菜单,滑动删除,长按拖拽,下拉刷新上拉加载

转自:http://blog.csdn.net/yanzhenjie1003/article/details/52115566RecyclerView侧滑菜单,RecyclerView滑动删除,RecyclerView长按拖拽,效果看下图,大家也可以下载演示apk具体操作体验下SwipeRecyclerView的强大。本文介绍的库中的侧滑效果借鉴自SwipeMenu,并对Sip

2017-01-11 19:06:58 1960

原创 Java 有向图的遍历,寻找所有从起点到终点的路径

最近遇到一个绘图的需求,是对地图的二次开发,在上面绘制覆盖物,所以这里涉及了对有向无环图的遍历问题。如下图是一个有向无环图:正常的深度优先遍历算法得到的结果会是:A、B、C、E、G、J、K、D、F、H、I 。但是我们需要的结果是:A、B、C、E、G、J、K ,A、B、D、E、G、J、K ,A、B、D、F、H、I、J、K 一共三条路径。所以需要对普遍的深度优先遍历算法做一定修

2016-12-06 20:18:09 27322 10

原创 Android Handler、Loop、MessageQueue的工作原理

为了更好地理解 Handler 的工作原理,下面先介绍一下与 Handler 一起工作的几个组件。        Message :Handler 接收和处理的消息对象。        Looper :每个线程只能拥有一个 Looper 。它的 loop 方法负责读取 MessageQueue 中的消息,读到消息之后就把消息交给发送该消息的 Handler 处理。        M

2016-10-17 14:37:01 4045

原创 Android 异步任务AsyncTask,执行下载任务

AsyncTask 是一个抽象类,通常用于被继承,继承 AsyncTask 时需要指定如下三个泛型参数。        Params :启动任务执行的输入参数的类型。        Progress :后台任务完成的进度值的类型。        Result :后台执行任务完成后返回结果的类型。使用 AsyncTask 只要如下三步即可。        1、创建 Asy

2016-10-17 14:02:31 6293 1

转载 Android 数字进度条NumberProgressBar

转自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0813/1645.html原生的ProgressBar在不同的主题下风格迥异,有矩形条状的,有代表加载进行中的圆圈风格的,在4.0的holo风格下这些ProgressBar都还比较好看,但是在非holo风格下让人厌烦。我不排斥使用原生控件,但是有时我们的app可能比

2016-10-17 12:21:53 7055

转载 Android 圆角进度条RoundCornerProgressBar

介绍:圆角矩形进度条,包含带图标和不带图标两种形式运行效果:使用说明:布局文件中添加roundcornerprogressbar控件        android:layout_width="dimension"        android:layout_height="dimension"        app:backgroundPad

2016-10-17 12:20:19 6897

转载 Android PendingIntent.getBroadcase的注册广播

转自:http://blog.csdn.net/huang_hws/article/details/7327670使用语句[java] view plain copyPendingIntent intent= PendingIntent.getBroadcast(Context context, int requestCode, Inte

2016-10-17 11:07:28 4420 1

原创 Android 使用9Patch图片做背景

9Patch 图片是一种特殊的 PNG 图片,这种图片以 .9.png 结尾,它在原始图片四周各添加一个宽度为1像素的线条,这4条线就决定了该图片的缩放规则、内容显示规则。        如上图显示了定义图片缩放区域的示意图。左侧和上侧的直线共同决定了图片的缩放区域:以左边直线为左边界绘制矩形,它覆盖的区域可以在纵向上缩放;以上面直线为上边界绘制矩形,它覆盖的区域可以水平缩放;

2016-10-17 09:09:50 7240

原创 Android API 19以上版本自带的下拉刷新控件SwipeRefreshLayout的使用

在 Android SDK 19.1 以上版本中,支持一个新的控件 SwipeRefreshLayout 下拉刷新的布局,继承自 ViewGroup ,在 support v4 兼容包下。下面来看一下效果图,由于电脑不能截动图,我还在网上找了的一张动图,实际效果可能会受手机系统影响,我在真机上测试下拉时显示的是一个类似 ProgressDialog 的效果。    先看一下布局

2016-10-16 20:13:01 4418

原创 Android 利用AutoCompleteTextView实现模糊搜索功能,搜索结果自动提示,识别拼音首字母并转汉字提示

这里说一下怎么利用 Android 的 AutoCompleteTextView 控件实现模糊搜索功能,AutoCompleteTextView 自带自动提示功能。如果对自动提示的布局自定义要求比较高,可以采用 EditText 和 ListView 结合实现搜索的自动提示。先看一下效果图:     先看功能实现的代码:public class MainActivity e

2016-10-16 19:16:51 16923 6

原创 Android JSON数据格式的解析,与简单对象、带泛型的List和Map的转换,以及GSON的使用

首先,这里要先说一下 JSON 的语法。1、使用 JSON 语法创建对象        如图,创建 object 时,总是以 “{” 开始,以 “}” 结束,对象的每个属性和属性值之间以英文冒号 “:” 隔开,多个属性定义之间以英文逗号 “,” 隔开。语法格式如下:object = { name1 : value1, name2 : value2,

2016-10-16 16:05:41 8662

原创 Android 记录和恢复ListView和GridView的滑动位置

这里以 ListView 为例说明,GridView 中同理。首先,定义一个成员变量。// 存储滑动位置状态private Parcelable state;然后,设置 ListView 的滑动监听事件,并重写 onScrollStateChanged 方法,当该方法被触发时记录下 ListView 的状态。// 记录listview滑动位置listView.setOnScroll

2016-10-16 15:47:44 4897

原创 Android ListView、GridView中getChildAt返回值不正确的问题

在使用 LitView 或 GridView 时,我们有时候会需要对视图进行一些动态的修改显示的操作,这时候就会用到 getChildAt 方法去获取相应 item 的视图,getChildAt 需要传入一个 int 类型的参数,代表要获取的 item 的位置。        我当时的需求是对用户点击的 item 改变显示样式,我在 OnItemClickListener 监听中重写了 o

2016-10-16 15:15:14 4911

原创 Android Adapter接口及实现类之ArrayAdapter、SimpleAdapter和BaseAdapter的简单介绍及运用

1、ArrayAdapter        简单、易用的 Adapter ,通常用于将数组或 List 集合的多个值包装成多个列表项。只能显示一个 TextView。public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState)

2016-10-16 13:07:50 5040

转载 Android 四种方案解决ScrollView嵌套ListView问题

转自http://bbs.anzhuo.cn/thread-982250-1-1.html在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全。我试过很多种方法,它们各有利弊。在这里我将会从使用ScrollView嵌套ListView结构的原因、这个结构碰到的问题、几种解决方案和优缺点比较,这4个方面来为大家阐述、分析、总结。

2016-10-16 12:57:41 4456

转载 Java 浮点数float和double类型的表示范围和精度

转自:http://blog.csdn.net/zq602316498/article/details/41148063?utm_source=tuicool&utm_medium=referral隐约记得,浮点数判断大小好像有陷阱,因为底层的二进制数不能精确表示所有的小数。有时候会产生让人觉得莫名其妙的事情。如在Java中,          0.99

2016-10-16 12:36:06 4618

转载 Java 原码、反码、补码详解

转自http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html#!comments本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有

2016-10-16 12:25:42 6667 2

原创 Android Drawable资源中selector、layer-list和shape标签详解

在实际开发中,我们经常会对控件的样式进行一些修改已满足我们的要求,这时候就会引用 Drawable 资源的样式文件。1、StateListDrawable 资源        StateListDrawable 用于组织多个 Drawable 对象。当使用 StateListDrawable 作为目标组件的背景、前景图片时,StateListDrawable 对象所显示的 Drawab

2016-10-15 21:16:54 4655

转载 Android 顶部标题栏ActionBar详解

转载自http://www.cnblogs.com/yc-755909659/p/4290784.html一、ActionBar介绍  在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个非常重要的交互元素,Action Bar取代了传统的tittle bar和menu,在程序运行中一直置于顶部,对于Android平板设备来说屏幕更大它的

2016-10-15 21:06:08 21839

原创 Android 沉浸式状态栏,状态栏颜色透明

这一特性,需要在 Android 4.4 以上版本中才能使用。第一种方法,通过XML配置:首先在 styles.xml 文件中添加一个主题: false true 然后在 AndroidManifest.xml 文件中配置android:theme="@style/AppTheme"添加在 application 标签中,则整个

2016-10-15 20:27:59 4506

原创 Android Studio中初始化并使用xUtils框架

首先,在 bulid.gradle 中手动添加对 xutils 的支持:compile 'org.xutils:xutils:3.3.36'这里可以不用导入第三方库,Android studio 在 Sync 时,会自动从网上下载相关包支持,个人在使用时是这种情况,如果不正确请指正。接下来需要创建 Application 类,并在其中对 xUtils 初始化:public cl

2016-10-15 19:58:49 9692 1

转载 Android开发在路上:少去踩坑,多走捷径

转自:http://djt.qq.com/article/view/11931.目前, Android APP开发完成后,通常需要在哪些机型上进行测试?2.目前, 开发Android APP时,需要考虑的分辨率有哪些?这两个问题可以合起来回答的。http://developer.android.com/about/dashboards/i

2016-10-15 19:17:56 4129

原创 Android GridView之实现单元格合并,以及第一个item点击无响应或显示不正常的解决方案

个人觉得 GridView 中实现单元格合并的需求并不常见,但是这里还是介绍一种方法,先看一下效果图:接下来是代码实现:public class MainActivity extends Activity { private static GridView mGridView; @Override protected void onCreate(Bund

2016-10-14 19:53:33 6922

原创 Android 修改原生NumberPicker数字选择器的分隔线颜色、文字颜色和大小,同时利用PopupWindow和补间动画自定义弹出效果

先上效果图:这个工程并不难,但是零碎的知识点还是挺多的,下面来讲讲思路:首先从 NumberPicker 开始:public class CustomNumberPicker extends NumberPicker { public CustomNumberPicker(Context context) { super(context);

2016-10-14 16:08:49 11414 1

原创 Android 补间动画的简单介绍及使用

定义补间动画的XML资源文件以 元素作为根元素,该元素内可以指定如下4个元素:        alpha :设置透明度的改变。        scale :设置图片进行缩放变换。        transalte:设置图片进行位移变换。        rotate :设置图片进行旋转。        定义动画的XML资源应该放在 /res/anmi/ 路径下,使用 Andro

2016-10-14 16:08:48 4334

原创 Android 简单数据存储之SharedPreferences简介(含方法及示例)

有时候,我们需要为应用程序保存少量的数据,而且这些数据格式简单,通常都是普通的字符串或标量类型的值,比如一些配置信息、玩家的登录信息、小游戏的积分等等。对于这些数据的存储,我个人推荐使用 SharedPreferences 进行保存。        SharedPreferences 保存的数据主要是简单类型的 key—value 对。SharedPreferences 接口主要负责读取应

2016-10-13 12:52:47 4395 1

原创 Android Studio运行时弹出程序安装失败对话框的解决办法

今天修改了下之前一个程序的部分代码,重新运行时安装失败,Android Studio 弹出如下对话框:尝试了多种办法,最后按如下方法解决了问题:依次打开 Android Studio -> Build -> Clean Project ,然后再重新运行任务就可以了。

2016-10-12 14:23:14 7854 2

转载 Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解

转载自http://blog.csdn.net/u012702547/article/details/50676606普通对话框普通对话框就是我们最最常用的对话框,实现起来并不复杂,实现出来的效果当然也是最简单的,如下:AlertDialog dialog = new AlertDialog.Builder(this).setTitle("普通对话框").setIcon(R.drawa

2016-10-12 13:52:22 5405

GSON 2.3.1

包括源码、文档、开发包

2016-10-16

Android自定义View——饼图

Android自定义View——饼图,可参考博客http://blog.csdn.net/liuwan1992/article/details/52637259

2016-09-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除