Colourful Day

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

——顾城《第八个早晨》


  • 首页

  • 分类

  • 归档

  • 标签

  • 留言

  • 关于

关于Android 6.0的运行时权限处理

发表于 2016-06-08 | 更新于 2018-11-11 | 分类于 Android Blog | 评论数:
之前有人在 Android 6.0 的机型上运行了 DragGridView 结果出异常奔溃了。想必问题的原因大家都知道,是 Android 6.0 新引入了在运行时权限申请(Runtime Permissions)的功能。那么这所谓的运行时申请权限究竟是怎么一回事呢,一起来看看吧! 在 Android 6.0 中,app 如果想要获得某些权限,会在应用中弹出一个对话框,让用户确认是否授予该权限。具体的截图如下: 这要做的好处就是运行一个 app 时可以拒绝其中的某些权限,防止 app 触及到你的隐私(比如说通讯录、短信之类的)。而在 Android 6.0 之前,若同意安装 app ,就意 ...
阅读全文 »

简易实现Android九宫格解锁

发表于 2016-05-10 | 更新于 2018-11-11 | 分类于 Android Blog | 评论数:
前言在平常使用手机的过程中,九宫格解锁是我们经常接触到的。常见的比如有锁屏中的九宫格,还有支付宝中的九宫格等。因为九宫格可以保护用户的隐私,所以它的应用面很广泛。那么今天我们就来自定义一个属于自己的九宫格吧! 首先我们来分析一下实现九宫格解锁的思路:当用户的手指触摸到某一个点时,先判断该点是否在九宫格的某一格范围之内,若在范围内,则该格变成选中的状态;之后用户手指滑动的时候,以该格的圆心为中心,用户手指为终点,两点连线。最后当用户手指抬起时,判断划过的九宫格密码是否和原先的密码匹配。 大致的思路流程就是上面这样的了,下面我们可以来实践一下。 Point 类我们先来创建一个 Point 类,用来 ...
阅读全文 »

自定义实现ViewPager指示器

发表于 2016-04-27 | 更新于 2018-11-11 | 分类于 Android Blog | 评论数:
今天来更新一发“自定义实现 ViewPager 指示器”。 ViewPager 指示器相信大家都用过吧,从一开始 JW 大神的 ViewPagerIndicator ,到现在 Material Design 中的 TabLayout 。GitHub 上还有其他形形色色的指示器。那么肯定有人会问:既然有了这么多的指示器可以用,那为什么还要自己自定义呢?其实,我们学习了自定义指示器之后,可以知道 ViewPager 指示器的原理,还可以提高我们代码的水平哦!那还等什么,一起来学习吧。 首先放上一张效果图,亮亮眼: 接下来我们来大致地分析一下思路: ViewPager 指示器我们可以看作是一个横向 ...
阅读全文 »

快速打造带有视差效果的ListView

发表于 2016-04-19 | 更新于 2018-11-11 | 分类于 Android Blog | 评论数:
在上一篇博文中,我们实现了仿美团的下拉刷新。而今天的主题还是与 ListView 有关,这次是来实现具有视差效果的 ListView 。 那么到底什么是视差效果呢?一起来看效果图就知道了: 我们可以看到 ListView 的 HeaderView 会跟随 ListView 的滑动而变大,HeaderView里的图片会有缩放效果。这些可以使用属性动画来实现。接下来我们就来动手吧! 首先自定义几个属性,在之后可以用到: 1234567891011<?xml version="1.0" encoding="utf-8"?><resources> <declare ...
阅读全文 »

带你实现仿美团的下拉刷新

发表于 2016-04-18 | 更新于 2018-11-11 | 分类于 Android Blog | 评论数:
有一段时间没更新博客了,近来都在做毕业设计,今天空出时间来更新一发。给大家带来的是仿美团的下拉刷新。相信美团大家都用过,下面就贴出了美团的下拉刷新效果: 我们可以大致地分析一下:首先根据下拉改变的 paddingTop 来动态地缩放“绿色椭圆物”,然后当 headerView 的 paddingTop 大于0时,播放美团小人出现的帧动画,最后就是手指松开时播放刷新中的帧动画了。 基本上思路就是上面分析的那样了,那么我们下面一步就是要获取帧动画的素材了。我们先下载好美团的 apk ,解压后在 res/drawable-xhdpi-v4 里,我们可以得到相关的图片了。如果嫌麻烦,文末有本 Dem ...
阅读全文 »

FloatingActionButton在滚动时显示或隐藏

发表于 2016-04-10 | 更新于 2018-11-11 | 分类于 Android Tips | 评论数:
在Material Design中,FloatingActionButton(即FAB)是一个很重要的元素。而通常在列表向下滚动的时候,FAB应该会隐藏;而在向上滚动时,FAB应该会显示出来。本篇就记录其中一种实现FAB显示或隐藏的方案,主要应用了属性动画。 其实关于FAB的显示和隐藏,Google官方就提供了其中一种方案:fab.hidden()和fab.show()。但是自带的是FAB缩放的效果。并不是上下移动的效果。 那么我们就来看看如何实现FAB上下移动的效果吧! 首先在你想要滑动的View(比如说RecyclerView等)的布局上加上: app:layout_behavior=&q ...
阅读全文 »

深入解析Scroller滚动原理

发表于 2016-04-05 | 更新于 2018-11-11 | 分类于 Android Blog | 评论数:
最近在看《Android开发艺术探索》这本书,不得不赞一句主席写得真好,受益匪浅。在书中的相关章节有介绍用Scroller来实现平滑滚动的效果。而我们今天就来探究一下为什么Scroller能够实现平滑滚动。 首先我们先来看一下Scroller的用法,基本可概括为“三部曲”: 创建一个Scroller对象,一般在View的构造器中创建: 123456789101112public ScrollViewGroup(Context context) { this(context, null);}public ScrollViewGroup(Context context, ...
阅读全文 »

Android安全机制之反编译

发表于 2016-04-03 | 更新于 2018-11-11 | 分类于 Android Blog | 评论数:
今天我们就来探讨一下反编译,其实反编译在我一开始学习Android的时候就听说过,但是一直没有去尝试。初次接触应该就是那次“蜻蜓FM v5.0.1 apk”事件了( 此处应有掌声(¯ □ ¯) )。那时根据网上的教程第一次反编译了“蜻蜓FM”的apk,看到了传说中的“普罗米修斯方法”以及“宙斯类”(不得不感慨开发小哥的智商)。之后就是在阅读《Android群英传》时也有相关反编译的内容,觉得有必要记录一下。所以这就是本片写博文的起源了。 首先关于反编译,我们先要准备几个工具: apktool:aoktool主要是用来反编译资源文件的,也就是XML了。 Dex2jar:Dex2jar就是反编译 ...
阅读全文 »

《Android开发艺术探索》笔记(上)

发表于 2016-03-31 | 更新于 2018-11-11 | 分类于 Book Note | 评论数:
第一章:Activity的生命周期和启动模式1.1 Activity的生命周期全面分析典型情况下的生命周期分析 onStart()和onStop()是从Activity是否可见这个角度来回调的,而onResume()和onPause()是从Activity是否位于前台这个角度来回调的。 Activity A打开Activity B时,为了不影响B的显示,最好不要在Activity A的onPause()里执行一些耗时操作,可以考虑将这些操作放到onStop()里,这时B已经可见了。 异常情况下的生命周期分析 由于Activity是在异常情况下终止的,系统会调用onSaveInstanceSta ...
阅读全文 »

初探MD式转场动画

发表于 2016-03-23 | 更新于 2018-11-11 | 分类于 Android Tips | 评论数:
最近在做MD设计风格的APP,所以在转场动画上当然也得符合MD了。下面就是效果图: 一开始并未了解过这种转场动画,原来是Google在SDK中已经给我们提供了。ActivityOptions是 Android 5.0 及以上使用的,但是也提供了ActivityOptionsCompat向下兼容。 下面我们就来看看吧: layout_item.xml(ListView的item布局): 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253<?xml ...
阅读全文 »
1…8910…12
俞其荣

俞其荣

向前跑 迎着冷眼和嘲笑

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