自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

原创 最简洁无bug版本圆角webview实现

webview实现圆角

2022-09-21 18:06:31 886 2

原创 隐藏重要字符串的一部分让其显示****的小方法

项目中打LOG, 因为有涉及到token的打印, 涉及安全, 不让全部显示, 写了两个简单小方法, 好用! 记录下1. 对普通字符串mask, 让中间14位显示*****public static String maskStr(String s) { if (!TextUtils.isEmpty(s) && s.length() > 14) { char[] a = s.toCharArray(); ...

2020-08-14 14:06:23 962

原创 遍历删除文件夹方法

private void removeDirectoryRecursive(File parent) { if (parent.isDirectory()) { String[] files = parent.list(); for (String filename : files) { File child = new File(parent, filename); r...

2020-08-05 13:43:44 332

原创 关于Gson解析容易出错的几点

1. 当json有某个字段, 解析实体类无此字段时, 正常解析2. 当json没有某个字段, 解析实体类有些字段时, 正常解析, 但是实体类get出来的这个值是null3.当确定json中某个字段类型时, 如float, 建议实体类也定义成float, 而不要定义成string, 如果是定义成string, 刚应该加上默认值, 如"", 防止后台给过来的数据有调整, 没有这个字段, 就容易出现NullPointerException了, Float有默认值0, 所以不会出错, 而且减少了在代码中再去

2020-07-19 12:58:43 665

原创 android国际化时关于单复数及时间的处理

1. 关于单复数:getQuantityString()2. 关于时间的处理, SimpleDateFormat支持的时间格式:* G: 公元 时代,例如AD公元* yy: 年的后2位* yyyy: 完整年* MM: 月,显示为1-12* MMM: 月,显示为英文月份简写,如 Jan* MMMM: 月,显示为英文月份全称,如 January* dd: 日,2位数表示,如02...

2020-03-24 09:49:51 456

原创 关于android事件分发, 总结成一个经典例子!

关于android事件分发的总结, 就一句话:假如你是一个公司的员工,你的上头有一个主管,主管上头还有一个经理。为了简单,你们这个团队就有这三个人。那么如果上头安排一件事下来要处理,流程是怎样的呢?显然应该是由你的经理将这件事安排给你的主管来处理,你的主管再将这件事安排给你来处理。等你把这件事办好了,你就应该给你的主管报告,再由你的主管来向你的经理报告。显然,你的主管和经理也有处理这件事的权限...

2020-03-09 13:10:26 225

转载 关于Binder中clearCallingIdentity()与restoreCallingIdentity()的作用及如何实现权限认证

链接:https://www.zhihu.com/question/41003297/answer/89328987, 这文章写的很详细, mark下一、源码分析(1)clearCallingIdentity方法,最终调用如下:int64_t IPCThreadState::clearCallingIdentity(){ int64_t token = ((int64_t)...

2019-06-03 13:39:17 6720 2

原创 关于EventBus的onEvent()、onEventMainThread()、onEventBackgroundThread()、onEventAsync()的解释

几句话概括:1.onEvent() 使用onEvent来接收事件,那么接收事件和post事件在同一个线程中执行2.onEventMainThread() 使用onEventMainThread来接收事件,那么不论post事件在哪个线程运行,接收事件永远在UI线程执行3.onEventBackgroundThread() 使用onEventBackground...

2019-05-31 10:34:43 6700

转载 RecyclerView流畅度优化点

实现:使用onScrollStateChanged回调检测滚动状态,并在RecyclerViewAdapter内部设置类似isScrolling的状态值来控制网络图片的加载。上代码:// BaseAdapter中添加如下代码public abstract class BaseRecyclerViewAdapter<T> extends RecyclerView.Adapt...

2019-05-29 11:12:27 1160

转载 关于synchronized 关键字

synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;3. 修改一个静态的方法,其作用的范围是整个静态方法,作用的对...

2019-05-27 17:25:21 180

转载 关于Adapter的The content of the adapter has changed问题分析 (转载)

写得很详细, 转载下:https://www.cnblogs.com/monodin/p/3874147.html1、问题描述 1 07-28 17:22:02.162: E/AndroidRuntime(16779): java.lang.IllegalStateException: The content of the adapter has changed but ListVi...

2019-04-05 13:23:51 162

转载 Android事件分发总结

1.dispatchTouchEvent是处理触摸事件分发,Android中所有的事件都必须经过这个方法的分发,然后决定是自身消费当前事件还是继续往下分发给子控件处理。返回true表示不继续分发,事件没有被消费。返回false则继续往下分发,如果是ViewGroup则分发给onInterceptTouchEvent进行判断是否拦截该事件,事件(多数情况)是从Activity的dispatchTo...

2019-03-26 13:44:17 161

原创 打印正在运行的service及runningtask

Mark下, 尤其是service这个:    public void printRunningService(Context context) {        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);        List&lt;Runnin...

2018-12-28 14:41:39 517

转载 Android 5.1版本以上WebView内存泄漏问题及快速解决方法

转载自:http://www.jb51.net/article/113315.htm问题背景今天在排查项目内存泄漏过程中发现了一些由WebView引起的内存泄漏,经过测试发现该部分泄漏只会出现在android 5.1及以上的机型。虽然项目使用WebView的场景并不多,但秉承着一个泄漏都不放过的精神,我们肯定要把它给解决了。遇到的问题项目中使用WebVi

2017-07-24 16:44:19 1407

原创 关于android内存泄漏的两篇好文章

纯markhttp://droidyue.com/blog/2015/04/12/avoid-memory-leaks-on-context-in-android/https://drakeet.me/android-leaks/

2017-06-09 13:29:53 303

转载 Android AndroidManifest.xml相关flag详细说明

android:stateNotNeeded:  默认为false,若设为true,则当Activity重新启动时不会调用onSaveInstanceState()方法,同样,onCreate()方法中的Bundle参数将会用null值传进去,也就是说,Activity每次启动都跟第一次启动一样。这样,在某种特殊场合下,由于用户按了Home键,该属性设置为true时,可以保证不用保存原先的状态引用

2017-04-18 10:49:12 1655

原创 关于开机启动应用的两种好方式

针对于系统应用一种是监听开机广播, boot complete另一种是设置app manifest 属性persistent="true", 这样能达到开机启动并常驻的目的mark下

2017-04-10 12:20:14 643

转载 线程同步总结--synchronized方法和synchronized代码块

转载自:http://991690137.iteye.com/blog/1948882  阅读前必须明白:程序代码的目的是操作数据,而在操作数据时有可能发生同时操作同一个数据,所以为了避免同时操作一个数据产生错误才出现线程同步的概念,即synchronized方法和synchronized代码块技术。这里的同一个数据包括 所有对象...还有每一个对象都有

2017-02-09 10:45:14 563

转载 Android中常见的内存泄漏

转载自:【huachao1001的专栏:http://blog.csdn.net/huachao1001】我们经常会在不经意间写出造成内存泄漏的代码,往往在代码上很难查出来。但是我们可以通过一些辅助工具来检测是否存在内存泄漏,比如通过AndroidStudio的monitors来查看内存的变化情况,或者是通过开源框架《LeakCanary》来检测。本文主要是从网络中搜索汇总一些常见的内

2017-01-06 14:56:06 365

转载 SweepGradient参数的意义

转载自:https://my.oschina.net/u/2555140/blog/631847之前有一个项目需要这样的一个控件:自然想到用SweepGradient来渲染这个半环,参考了下官方的ColorPickerDemo,发现其中是一个完整的圆环,并不需要指定SweepGradient 的第四个参数positions.于是查阅了API和stackoverf

2016-12-23 10:51:33 4600 1

转载 “vmware 未能初始化监视器设备”的解决方法

VMware Workstation是款常见的虚拟机系统,它的跨平台和兼容性是非常不错的,可在Windows x64位系统上会偶尔提示错误“无法打开内和设备\\.\Global\vmx86 系统找不到指定的文件。是否在安装VMware Workstation后重新引导?未能初始化监视器设备。”如果重新启动电脑仍出现此问题,有可能是依赖VMware Workstation的服务没有启动所致,

2016-12-19 10:16:35 10584 4

转载 解决hao123劫持chrome主页问题

原文链接  :  http://xinghao.me/2016/03/01/2016-03-01-kill-hao123/前言最近帮别人激活系统,就下了一个小马激活软件,在电脑上打开了一下,确认能正常运行之后,就给别人发过去了。本以为没什么事了,过了一段时间之后,像往常一样打开chrome,弹出的不是熟悉的Google主页,而是hao123,那种心情,就是参

2016-12-15 20:49:10 6818 2

原创 Eclipse设置TAB和编码

 具体设置步骤如下:1、打开选项:General -&gt; Editors -&gt; Text Editors在右侧找到Displayed tab width:把下面的“Insert spaces for tabs” 勾选上,点OK保存之后,新建一个html文件输入几个tab键并按左右方向键移动光标测试一下,发现原来的tab已经被替换成了4个空格字符。 但如果要...

2016-09-09 11:23:22 731

转载 Android中Canvas绘图基础详解(附源码下载)

Android中,如果我们想绘制复杂的自定义View或游戏,我们就需要熟悉绘图API。Android通过Canvas类暴露了很多drawXXX方法,我们可以通过这些方法绘制各种各样的图形。Canvas绘图有三个基本要素:Canvas、绘图坐标系以及Paint。Canvas是画布,我们通过Canvas的各种drawXXX方法将图形绘制到Canvas上面,在drawXXX方法中我们需要传入要绘制的图形

2016-09-08 10:56:43 800

转载 UI设计师不可不知的安卓屏幕知识

转自:http://www.zcool.com.cn/article/ZNjI3NDQ=.html  谢谢作者不少设计师和工程师都被安卓设备纷繁的屏幕搞得晕头转向,我既做UI设计,也做过一点安卓界面布局,刚好对这块内容比较熟悉,也曾在公司内部做过相关的讲座,在此,我将此部分知识重新梳理出来分享给大家!1、了解几个概念(1)分辨率。分辨率就

2016-08-25 10:32:42 1127

转载 [Android分享] 彻底理解ldpi、mdpi、hdpi、xhdpi、xxhdpi

来自: http://www.eoeandroid.com/thread-565562-1-1.html?_dsign=42bed080非常感谢楼主分享 这个问题我相信困惑了好多人包括很多老鸟,而且有的人以为自己理解其实是错误的,包括之前的我在内,一般让美工做720*1280的切图,就直接放到xhdpi下,如果是做了1080*1920,就直接放到xxhdpi下。其实这四个文

2016-08-25 10:26:09 428

原创 android 如何自定义view

1. 首先在 attrs.xml 中声明自定义view要自定义的属性:                        注意:(1) name 不是 android:name    (2) format一共有:string, color, dimension, integer, enum, reference, float, boolean, fraction, 

2016-04-27 14:39:06 440

转载 mark下,Android 5.0状态栏透明解决方案

首先说明下,这个跟什么沉浸式状态栏完全就是两回事,这个实现的是状态栏一直存在,但是是透明的存在!给需要的了publicclass MainActivity extendsActivity {         @SuppressLint("InlinedApi")    @Override    protectedvoi

2015-07-24 10:05:07 639

转载 解决:Invalid project description overlaps the location of another project [android] 最有效方法

估计是Eclipse ADT插件的bug,导入android工程时有时候会提示这个错误:按照提示,说是当前的工作空间内已经有同名的工程了,但实际是没有的。。。多次碰到这种问题后,无意间找到解决办法。。。不要选择导入android工程,而是General工程。。上图!转自:http://blog.chinaunix.net/uid-243524

2013-06-25 17:28:45 1112

转载 minSdkVersion、targetSdkVersion、targetApiLevel的区别

转载自:http://site.douban.com/128911/widget/notes/5269368/note/177080440/在AndroidMenifest.xml中,常常会有下面的语句:          android:targetSdkVersion="10"          android:maxSdkVersion="10

2013-05-15 11:58:01 523

原创 如何在PreferenceActivity中加载普通控件及Preference

众所周知,在一个继承PreferenceActivity的类中,可以通过addPreferencesFromResource(R.xml.preference); 来添加preference。如果要在这个Activity中同时加载普通VIew控件,如TextVIew, Button等,下面是解决方案:1、新建你要加载的View:如:<LinearLayout xmlns:android

2012-03-31 14:04:28 1333

Eclipse环境下使用TabLayout DEMO

本人比较讨厌AS,但是在Eclipse下使用support design library有各种错误,所以上传这么个demo,用Eclipse的同学可以直接导入,appcompat和design作为library, SDK 6.0

2016-12-08

ScrollerViewDemo

一个很好的理解scroller的demo,有手势的详细分析与注释,代码基于 http://blog.csdn.net/qinjuning/article/details/7419207 自己作个mark,希望对小伙伴有帮助

2016-09-20

空空如也

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

TA关注的人

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