Colourful Day

我需要,最狂的风,和最静的海。

——顾城《第八个早晨》


  • 首页

  • 分类

  • 归档

  • 标签

  • 留言

  • 关于

快速打造仿Android联系人界面

发表于 2016-03-22 | 更新于 2018-11-11 | 分类于 Android Blog | 评论数:
有段时间没写博客了,趁今天有空就写了一篇。今天的主题就是仿联系人界面。相信大家在平时都见过,就是可以实现快速索引的侧边栏。比如在美团中选择城市的界面: 我们可以看到在右侧有一个支持快速索引的栏。接下来,我们就要实现这种索引栏。 首先是attrs.xml,定义了三个自定义属性: 1234567891011<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="QuickIndexBar"> // 字体的颜色 <attr nam ...
阅读全文 »

夜半一忆

发表于 2016-03-17 | 更新于 2018-06-23 | 分类于 岁月如歌 | 评论数:
素时锦年,稍纵即逝半载青春,流转指间 冬去春来,又一载。 曾几何时,一身白衣,穿行多少过往;几经周转,茫与人海之中。 奈何岁月,流于昨日。雁过一鸣,惊于何人?花开花谢,润土无声。 繁华落尽,只道是人间凄凉。穷极一生,只为还清一世业障。 高山流水,静谧成寂。秋风落叶,随风飘散。 别时易,相逢难,烈酒灼心,忆似水年华。 乍暖还寒,大梦初醒,此夜无眠。 仰天大笑,岂是蓬蒿人? ————记于开题答辩之日
阅读全文 »

《Android群英传》笔记(下)

发表于 2016-03-08 | 更新于 2016-08-18 | 分类于 Book Note | 评论数:
第六章:Android绘图机制与处理技巧6.1 屏幕的尺寸信息系统屏幕密度如下 ldpi—120—240X320分辨率 mdpi—160—320X480分辨率 hdpi—240—480X800分辨率 xhdpi—320—720X1280分辨率 xxhdpi—480—1080X1920分辨率 Android系统使用mdpi即密度值为160的屏幕作为标准,在这屏幕上1px = 1dp。 所以各个分辨率直接的换算比例,即ldpi:mdpi:hdpi:xhdpi:xxhdpi=3:4:6:8:12 下面给出单位转换的源码: public class DisplayUtil { /** ...
阅读全文 »

实现WebView中JS和App之间的交互

发表于 2016-03-07 | 更新于 2018-11-11 | 分类于 Android Tips | 评论数:
Native App 和 JS 交互今天被问到了一个问题:在 WebView 中加载了一个网页,点击网页中的按钮,如何跳转到指定 Activity ?当时听到后脸上就写了大大的“懵逼”两个字,一时词穷,没回答上来。之前对 WebView 也没有更深入地了解,只是简单地用来加载网页而已。 之后在脑海中回想到 WebView 中的 JS 可以和 app 产生交互,于是搜索了一下,果然网上有类似的实现效果。看了一下,在这里就做一个简单的笔记了以便之后查看。 在 WebView 中想要 JS 和 app 产生交互,就不得不提一个方法,那就是addJavascriptInterface(Object ...
阅读全文 »

《Android群英传》笔记(上)

发表于 2016-02-28 | 更新于 2018-11-11 | 分类于 Book Note | 评论数:
第三章:Android控件架构与自定义控件详解3.1 Android控件架构控件分为两类:View和ViewGroup,通过ViewGroup整个界面形成一个树形结构,并且ViewGroup负责对子View的测量与绘制以及传递交互事件。通常在Activity中使用的findViewById()方法,就是在控件树中以树的深度优先遍历来查找对应元素。在每颗控件树的顶部,都有一个ViewParent对象,这就是整棵树的控制核心,所有的交互管理事件都由它来统一调度和分配。 如上图所示,每个Activity都包含一个Window对象,在Android中Window对象通常由PhoneWindow来实现 ...
阅读全文 »

使用RecyclerView实现仿喵街效果

发表于 2016-02-26 | 更新于 2018-11-11 | 分类于 Android Blog | 评论数:
又到更新博客的时间了,本次给大家带来的是在RecyclerView的基础上实现喵街的效果。那么喵街是什么效果呢?下面就贴出效果图: 值得一提的是,这是旧版本的特效,新版本的喵街已经去掉了这种效果。 看完了效果,接下来就是动手的时间了。 我们先来分析一下思路:我们先给RecyclerView添加一个OnScrollListener,然后分别去获得firstVisiblePosition和firstCompletelyVisiblePosition。这里要注意一下,firstVisiblePosition是第一个在屏幕中可见的itemView对应的position,而firstCompletel ...
阅读全文 »

九大基本排序算法

发表于 2016-02-18 | 更新于 2016-08-18 | 分类于 算法 | 评论数:
冒泡排序冒泡排序的平均复杂度是O(N^2),最好的情况O(N),最坏的情况O(N^2);空间复杂度O(1);稳定算法 /** * A为数组,n为数组的长度 */ private static int[] bubbleSort(int[] A, int n) { int temp; for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (A[j] > A[j + 1]) { temp = A[ ...
阅读全文 »

带你一步步实现可拖拽的GridView控件

发表于 2016-02-15 | 更新于 2018-11-11 | 分类于 Android Blog | 评论数:
经常使用网易新闻的童鞋都知道在网易新闻中有一个新闻栏目管理,其中GridView的item是可以拖拽的,效果十分炫酷。具体效果如下图: 是不是也想自己也想实现出相同的效果呢?那就一起来往下看吧。 首先我们来梳理一下思路: 当用户长按选择一个item时,将该item隐藏,然后用WindowManager添加一个新的window,该window与所选择item一模一样,并且跟随用户手指滑动而不断改变位置。 当window的位置坐标在GridView里面时,使用pointToPosition (int x, int y)方法来判断对应的应该是哪个item,在adapter中作出数据集相应的变化, ...
阅读全文 »

在AlertDialog中EditText无法弹出键盘的解决方案

发表于 2016-02-06 | 更新于 2018-11-11 | 分类于 Android Tips | 评论数:
之前在做项目的过程中,有一个需求就是在AlertDialog中有EditText,可以在EditText中输入内容。但是在实际开发的过程中却发现,点击EditText却始终无法弹出键盘。因为之前在使用AlertDialog的时候,布局中并没有EditText,因此没有发现这个问题。这次算是填了一个隐藏的坑。 例如下面给出了一个例子,首先贴上AlertDialog的layout.xml:1234567891011121314151617181920212223<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:an ...
阅读全文 »

对LayoutInflater的深入解析

发表于 2016-02-03 | 更新于 2018-11-11 | 分类于 Android Blog | 评论数:
前言今天要讲的主角就是LayoutInflater,相信大家都用过吧。在动态地加载布局时,经常可以看见它的身影。比如说在Fragment的onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)方法里,就需要我们返回Fragment的View。这时就可以用inflater.inflate(R.layout.fragment_view, container, false)来加载视图。那么下面就来探究一下LayoutInflater的真面目吧。 from(Context context ...
阅读全文 »
1…9101112
俞其荣

俞其荣

向前跑 迎着冷眼和嘲笑

120 日志
11 分类
51 标签
RSS
GitHub Twitter 微博 Email
Creative Commons
© 2015 — 2021 俞其荣
由 Hexo 强力驱动
|
主题 — NexT.Muse
Hosted by Coding Pages