示例应用
为方便分析,写了一个超简洁Demo,没集成AppCompat,就一个MainActivity,使用如下布局
LinearLayout有个属性叫showDividers
,可以用来在LinearLayout的Child之间显示一条分割线,使用起来很是方便,但是,Android啊,总是在开始时感觉有很多方便开发的东西,但使用越久,越发现坑很多。
当RecyclerView中的数据集很大时,通过smoothScrollToPosition
去滚动到一个位置,如果这个位置和当前位置相差很远,比如说300项,你会发现整个过程很长,比如说我遇到的,滚动300项,用了3.5秒。
通过LinkMovementMethod与URLSpan给TextView添加链接就不说了,大家都知道,不过在使用过程中遇到两个问题,在这里记录一下。
最近在使用UniversalImageLoader时遇到了一个小问题,多个地方同时通过ImageLoader.getInstance().loadImage(url, new ImageSize(dp72, dp72)...
加载图像时,有一定机率只有部分地方能正确地加载到图片,其他地方是什么结果呢?从Log看是这个样子:
关于圆角图片的实现,网上应该有很多例子,主要就是使用BitmapShader,比如Universal-Image-Loader中的RoundedBitmapDisplayer,本文中的实现都是基于这个RoundedBitmapDisplayer。
我们很多人应该都做过这样的操作,打开拨号键盘输入*#*#4636#*#*等字符就会弹出一个界面显示手机相关的一些信息,这个功能在Android中被称为android secret code,除了这些系统预置的secret code,我们也可以实现自己的secret code,而且实现起来非常简单。
给TextView设置了OnLongClickListener后,如果TextView中同时有ClickableSpan(一般为URLSpan),此时长按TextView,如果长按的位置在ClickableSpan上,会发现同时触发了OnLongClickListener和ClickableSpan的onClick。比如下面的代码
1 | public static Bitmap convertViewToBitmap(View view) { |
这两天在看PackageManagerService,大概看了一下PackageManagerService的启动流程与APK的安装过程,细节也没怎么看,本来想总结一下的,刚写了一点,然后发现一篇文章,感觉不错,就直接转来了,懒得再总结了。
当打开一个Activity时,如果这个Activity所属的应用还没有在运行,系统会为这个Activity所属的应用创建一个进程,但进程的创建与初始化都需要时间,在这个动作完成之前系统要做什么呢?如果没有任何反应的话,如果程序初始化的时间很长,用户可能还以为没有点到相应的位置。但此时所启动的程序还没初始化完,既无法显示程序,又不能停在原处不做任何动作,怎么办?这就有了Starting Window的概念,也可以称之为Preview Window。