7 男子汉大豆腐

尚未进行身份认证

少说,多想,多做。

等级
博文 27
排名 6w+

HashMap 实现原理分析

HashMap又叫Hash表或散列表,是基于哈希表的Map接口实现。此实现提供了基于Key-Value映射结构数据的所有可选操作,如:增、删、改、查等。HashMap并不保证映射顺序,特别是它不保证插入顺序恒久不变(后文会说明为什么)。1到底“哈希表”、“散列表”是个什么东西?HashMap本质上是“基于哈希表的Map接口实现”,Map接口的实现好理解,但“哈希表”或...

2019-06-12 14:20:31

setVisibility(View.GONE)无效的解决方案

原因:一般出现这种情况都是为View设置了动画,并且调用了setFillAfter(true)方法设置动画结束后停留在结束位置。解决方案:可以在setVisibility()之前调用clearAnimation()方法清除掉动画,或setFillAfter(false)(时间上该函数内部也调用了clearAnimation())。

2015-10-17 11:47:15

Android 解决ScrollView与父视图滑动冲突问题

最近在解决一个比较棘手的问题,就是ScrollView与父视图之间滑动冲突的问题。这里所说的滑动冲突,是指包裹ScrollView的父视图本身就是一个可以滑动的组件,比如说ScrollView嵌套ScrollView的情况(当然,这在实际应用中是没有意义的,因为ScrollView只能包含一个子组件,这里只是举一个栗子)。问题定义说要解决这样一个问题,肯定会有点摸不到头脑,但我们可以用分解法,来“大

2015-08-09 17:24:15

Android 调用系统图片裁剪(解决“无法加载。”问题)

Android调用系统图片裁剪(解决“无法加载。”问题)由于Android屏幕尺寸碎片化的问题太过严重,因此很多app在上传图片之前都会将图片剪切成自己想要的尺寸。由于需求很大,Android官方也给出了系统自带的图片裁剪app,我们可以在程序中很方便地调用到。1.调用裁剪工具if(null!=uri){Intentintent=newIntent();/*设置调

2015-07-31 16:13:56

Android ContentObserver 监听图库变化

相比FileObserver的繁琐,ContentObserver在易用性上还是要优秀一些的,因此我们可以在有监听需求的时候选用一下,一个功能多一种实现方式,就多了一个比较嘛。关于ContentObserverContentObserver顾名思义,就是内容观察器的意思,跟FileObserver很像,只不过前者是监听数据库的变化。实现步骤这里我们就拿图库监听做一个例子:在做之前先给出图库相对的

2015-07-31 10:05:16

android FileObserver的用法与避坑指南

昨天因为项目需要,需要做一个damo,用到了文件监听的功能,所以就使用了FileObserver(文件观察器)这个类,结果就被坑的不行不行的,昨天下班已经身心俱疲,本着跟bug呲牙必报的精神,这里要将这笔账记下,也希望大家以后不会在这上面浪费时间。FileObserver的功能故名思议,就是监听文件的事件啦,根据官方给出的文档,有以下几种事件的响应,对应不同的事件常量。常量名对应事件

2015-07-30 11:06:51

解决Android studio无法更新sdk的方法2

最近重装了系统,发现以前通过修改hosts文件来更新sdk的方法已经不能用了,于是弄了一天,试了各种方法,找到正确解决方法的时候差点被自己蠢哭。正所谓“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”。上次的解决方法在最后分享了一个国内的Androidstudio社区,我平时都在上面下载资源,这次的解决方法就在这个网站中。先上链接,AndroidStudio中文社区。思路在试了各种翻墙工具

2015-06-16 12:01:54

xFermode的原理及使用

xFermode是画笔的一个属性,有点类似于PS中的图层,有一个底层图层,和一个顶层图层,通过两个图层叠放层次的不同,可以做出很多好玩的效果。谷歌官方的apidemo中生成了两个图层的各种叠放次序效果:是不是有点摸不着头脑,让我们列个表格来解释一下吧:属性名属性常量属性说明ClearPorterDuff.Mode.CLEAR所有的图层都不会在画布上展示Src

2015-05-31 17:29:50

Immutable bitmap passed to Canvas constructor 异常

异常背景:这是一个在使用BitmapFactory.decodeResource(Resourcesres,intid)函数创建bitmap时经常会遇到的问题;异常原因:发生这个异常是由于android不允许直接对drawable目录中的图片进行修改的,而直接通过该函数创建出来的Bitmap对象,具有直接修改图片资源的能力。只能通过拷贝一个id参数所对应图片资源的副本来创建Bitmap。解决办

2015-05-23 20:15:39

Android UI之GridLayout(网格布局)

说明:网格布局是4.0之后添加的布局,跟TableLayout有点像,但更加好用,它把容器分为一个rows*columns的网格,每个网格都是一个组件位,可是通过设置让组件位占据多行/列。与之相似地,还有一个叫做GridView的组件,无论功能和名称都很相似,不过GridView使用Adapter来填充组件位,GridLayout则要简化得多。按照CSDN博主studyboyjlu4(博客地

2015-05-15 07:43:35

Android UI之RelativeLayout(相对布局)

说明:RealtiveLayout是目前android开发中最最常用的布局管理器(比LinearLayout还常用),布局内的子组件的位置总是相互依照其他子组件和RealtiveLayout布局本身来确定的。这样最大的好处就是更加自由灵活,可以设计出更加炫酷复杂的界面,而且可以在IDE中通过直接拖拽来进行界面的布局设计。注意:RealtiveLayout的子组件不可以设置android:layo

2015-05-14 17:18:59

Android UI之FrameLayout(帧布局)

AndroidUI之FrameLayout(帧布局)说明:帧布局会为每个包含其中的组件开辟一个空白区域(称为帧),这些帧是一层层叠加在一起的,有点类似于一层层覆盖贴上去的海报,后面的组件会把前面的组件覆盖住。FrameLayout有两个比较特殊的常用属性需要注意:1android:foreground对应方法:setForeground(Drawable)说明:设置帧布局的前景图像,一般为布

2015-05-14 14:05:03

Android UI之TableLayout(表格布局)

AndroidUI之TableLayout(表格布局)说明:表格布局采用常见的表格方式来表示布局,与上文中提到的android:weight属性显示出来的效果有些相似。而事实上,TableLayout的确是LinearLayout的子类,因此本质上还是线性布局。实际开发中,我们经常会采用adnroid:weight属性来代替表格布局。跟在html中写表格有点类似,在TableLayout中,我

2015-05-13 21:08:39

Android UI之LinearLayout(线性布局)

说明:线性布局是最常用的布局,其包含的所有View会按照线性来排列。需要注意的就是四个比较常用的xml属性:1android:gravity对应方法:setGravity(int)说明:这个属性设置布局内组件的对齐方式,支持以下属性值:属性值作用top将对象放在其容器的顶部,不改变其大小bottom将对象放在其容器的底部,不改变其大小left将

2015-05-13 20:00:31

通过hover修改其他元素

hover,我们都知道,是监听组件“悬停状态”的一个伪类。我们一般通过hover来修改组件的背景什么的,很少涉及到太复杂的操作。也就是说我们一般只是对加了hover伪类的元素自身的样式进行改变,比如这样:<formname="register"method="post"><p><labelfor="name">姓名:</label><inputtype="text"name

2015-04-19 11:46:48

管好调皮的熊孩子——通过伪类清除浮动

这学期开始学习我导师主讲的《WEB程序设计》,自己以前做PHP的时候也算是写了很多前段代码,但都是抱着使用的目的去学的,没有系统学习,借着这学期的课,也对这种学习陋习留下的漏洞补补窟窿,做做笔记。在样式中使用浮动属性的时候常常会想要做这样类似的布局:根据上面的效果图,很容易就可以写出这样的div布局:<divclass="father"><divclass="title

2015-04-14 21:30:41

parseSdkContent failed java.lang.NullPointerException解决办法

最近手贱更新了Androidstudio,而as又自动更新了sdk,导致该死的Eclipse找不到当初设置的api文档了,整个Eclipse都不好了,所有的Android项目报错,所有的项目都无法导入、生成。每次打开adt都会报错parseSdkContentfailedjava.lang.NullPointerException1.网上很多人说可以删除workspace下的.metada

2015-04-10 16:23:58

Android Studio无法更新sdk的解决办法

如题,从前年开始谷歌就被墙了。从此国内Android开发者只能去网上手动下载sdk了。目前谷歌官方已经关掉了sdt的主页,也就是说以后AndroidStudio就是官方推荐的唯一开发工具了。但AS自带的sdk更新却无法使用个,不得不说是一个遗憾。这里把这个问题的解决方法贴出来,自己做个记录,也顺便跟大家分享一下。首先,找到系统盘下的这个目录。C:\Windows\System32\drivers\

2015-04-08 21:07:23

如何将你的Android项目上传到github

因为实习单位需要,最近研究了一下github的玩法,瞬间感觉自己以前用的svn弱爆了有没有!因为自己也没有做很深的研究,这里就先分享一下将自己的项目上传到github上的步骤。这里假设大家已经拥有了一个github账号(如果没有账号的,你还在等什么?),而且电脑上已经安装了git(如果没有安装,可以下载安装一个GitHubforWindows,Linux用户以Ubuntu为例,直接在终端中输

2015-03-30 18:28:22

大话Android 之activity生命周期

众所周知,Android四大组件里,最重要的就是activity了。而作为开发者,我们最应该关注的,当然少不了activity的生命周期啦。说到activity生命周期,最好的方式当然是通过流程图来解释啦,下面是官方给的图:这个一堆e文的流程图,怎么理解呢?可以理解为一部狗血的宫斗剧。activity就像一个秀女一样,整个生命周期里充满了争斗与起伏。“小秀女”act

2014-12-17 17:14:57
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。