自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 微信热修复 Tinker 和 flavor 更新

微信热修复 Tinker 和 flavor 更新

2018-01-02 11:10:30 689

原创 Android 属性动画,沿着一定角度弹出菜单

在前面的博客中已经简单的介绍了属性动画的一些特性。本文是对《Android 属性动画特效》http://blog.csdn.net/antimage08/article/details/50903894 的延续。在该基础上增加对一定角度上,菜单的弹射。效果如下:该效果是沿着一定角度进行弹射的,那么我们可以把该效果分解成沿着 X 轴和 Y 轴两个方向上的效果来做。其中的可变参数为距离的正

2016-05-24 11:27:18 942

原创 Android 中ListView 嵌套 ListView

在 Android 有时候会用到一个 ScrollView 嵌套一个 ScrollView 的问题,虽说不推荐这样使用。但是还是可以了解一下。下面是一个 ListView 嵌套一个 ListView 。效果如下:在上面的效果图中,主要是在于子 ListView 的滑动。这时候就需要由事件的分发机制来解决了。子 ListView 需要滑动,那么父 ListView 就不能把事

2016-05-12 15:33:46 919

原创 Android 自动显示与隐藏布局的 ListView

下面这个效果是,向下滑动 ListView ,其顶部布局自动显示;向上滑动 ListView ,其顶部的布局自动隐藏。效果如下:       首先这个效果的实现大致需要如下几步:       1. 让其没有 ActionBar ,可在 style.xml 中设置主题样式 Theme.AppCompat.Light.NoActionBar 。     

2016-03-24 21:53:26 2740

原创 Android 多线程下载

多线程下载网上有很多的例子,其中需要注意的就是:每个线程该分配多大的算法;通过请求从返回的 getContentLength() 方法获取需要下载的文件大小。使用 RandomAccessFile 类来创建文件夹。因为该类可以从文件的任何位置开始读写操作,有 seek() 方法。下载成功后的示意图:具体代码如下:MultiThreadDownload.j

2016-03-21 20:33:50 578

转载 Android 单位转换(dp、sp、px)

Android 系统屏幕密度信息见下表:独立像素密度 dp Android 系统使用 mdpi 即密度值为 160 的屏幕作为标准,在这个屏幕上 1px = 1 dp。例如同样是 100dp 的长度,在 mdpi 中为 100px,在 hdpi 中为 150px。各个密度值中的换算公式,在 mdpi 中 1 dp = 1 px,在 hpdi 中 1dp = 1.5 px,在

2016-03-16 16:06:18 514

原创 Android 属性动画特效

在 Android 3.0 之前已有的动画框架 Animation 存在一些局限性—— 动画改变的只是显示,并不能响应事件(相比属性动画,视图动画的一个非常大的缺陷就是不具备交互性,当某个元素发生视图动画后,其响应事件的位置依然在动画前的地方,所以视图动画只能做普通的动画效果,避免交互的发生。它的优点是效率比较高使用方便)。本文要实现的效果如下:在这之前先简单的介绍

2016-03-16 14:31:26 527

原创 Android SVG 矢量动画机制

Google 在 Android 5.X 中增加了对 SVG 矢量图形的支持。可从如下方面简单了解什么是 SVG。      1、指可伸缩矢量图形 (Scalable Vector Graphics)      2、 用来定义用于网络的基于矢量的图形      3、使用 XML 格式定义图形      4、图像在放大或改变尺寸的情况下其图形质量不会有所损失      5、是万维

2016-03-16 00:06:59 1408

原创 Android 刮刮卡效果

PorterDuffXfermode 这个类在以前的博客中就已经使用过,见《利用 2D 图形和 PorterDuffXferMode 等实现被遮罩的图片》http://blog.csdn.net/antimage08/article/details/50396931。PorterDuffXfermode 相关的可以参见 API Demo 中图,如下:       它控制的是两个图像

2016-03-14 23:27:06 535

原创 Android 中的 Searchable 使用,及删除记录

Android为程序的搜索功能提供了统一的搜索接口,search dialog和search widget,这里简单介绍search dialog使用。search dialog 只能为于activity窗口的上方。下面以点击EditText输入框启动search dialog搜索框为例,效果如下:       该效果是在点击 EditText 时,自动跳转到 google 自带的

2016-03-02 22:51:24 3331 1

原创 fragment 的隐藏及界面切换的效果

在前文中的效果中(http://blog.csdn.net/antimage08/article/details/50759279),点击屏幕下方的 TextView 以此来实现 5 种 fragment 界面的切换。       由于网络数据的加载存在于不同的界面之中,当快速的切换界面时,就会出现程序的出错。因为快速的切换时,当前界面的数据还在读取,就切换到下一个界面,下一个界面也开始加载数

2016-03-01 20:17:52 3181

原创 自定义 ActionBar ,创建复合控件

当多个界面都有很多相似部分时,可以考虑创建一个功能较全的模板。而在需要时,可以通过引用模板来实现自己想要实现的功能。比如适配器 Adapter,当很多的适配器都差不多时,就可以通过打造一个通用的适配器来实现。本例中主要是如何创建自定义的 ActionBar。        观察上图的,当切换界面时,每个界面的顶部最多只有两个图标,而且有4个界面具有类似特性。所以可以考虑通过自定义控

2016-02-28 12:32:59 657

原创 利用Android的媒体库,遍历SD卡中的音乐文件,并用Service制作简单的音乐播放

在前文中利用递归的方法遍历SD卡中的音乐文件http://blog.csdn.net/antimage08/article/details/50556645,现在利用Android中的媒体库,遍历SD卡中的音乐文件。效果如下:效果图中的音乐列表图片:音乐文件如.mp3 一般都包含有该音乐的基本信息,如图片,歌曲名,艺术家等。注意:没有歌词。下面这个类就可以得到这些信息。

2016-02-18 17:06:31 4276 2

原创 仿新闻图片浏览

本文是仿网易新闻中的图片浏览示意,但是又增加了些图片翻动时的效果。效果如下:该图片是网上实时更新的图,此处不在有JSON的解析等,点击该图片后把URL传递给 Activity,以此来加载。布局文件效果如下:其代码如下 news_pict_show_layout:<RelativeLayout xmlns:android="http://sc

2016-02-14 20:59:21 665

转载 递归遍历 SD 卡目录下的所有音乐文件,并点击条目后进入相应的播放界面

在编写音乐 app 时,需要用到SD 卡目录下的音乐文件。遍历 SD 卡目录下的所有音乐文件,显示在相应的条目后,点击相应条目后就可以进入播放界面。点击条目时还需要传递参数可以用 Parcelable 实现传参。在前文中也有该 Parcelable 传参的示例。       效果如下:遍历 SD 卡目录下的文件:MusicCursorListActivity.java :

2016-01-21 17:43:37 3572

转载 利用 HorizontalScrollView 实现滑动页面时的缩放效果

在前面的文章中也有关于 HorizontalScrollView 的使用 http://blog.csdn.net/antimage08/article/details/50493233 。这里主要实现的是向右滑动时,左侧的视图有逐渐放大,也会越来越清晰;向左滑动时,左侧的视图逐渐减小,逐渐变的模糊,且不移出屏幕左边缘的效果。效果如下(可以在主页面上的右侧向右滑动都可以实现该效果):

2016-01-16 11:16:50 2196

原创 利用自定义的 RecyclerView 实现相册的滑动功能

利用自定义的功能实现和上次一样的功能(相册), 《 使用 HorizontalScrollView 实现水平滚动,并点击有相应的反应效果》http://blog.csdn.net/antimage08/article/details/50493233  这次的自定义解决了上次在第 9 张图片时不能显示的问题,并添加了一些额外的功能。       关于 RecyclerView 前面的文章已

2016-01-12 21:26:16 1903

转载 使用 HorizontalScrollView 实现水平滚动,并点击有相应的反应效果

HorizontalScrollView 和 ScrollView 都是由 FrameLayout 派生出来的。它们就是一个用于为普通组件添加滚动条的组件。且HorizontalScrollView 和 ScrollView 里面最多只能包含一个组件(当然组件里面还可以嵌套组件)。它们不同的是HorizontalScrollView 用于添加水平滚动,而 ScrollView 用于添加

2016-01-10 18:53:44 8466 1

原创 利用 HandlerThread 创建一个后台工作线程( AsyncTask 的缺点),处理图片缩放时内存溢出问题

在前面的博客中有提到 HandlerThread 的简单使用:http://blog.csdn.net/antimage08/article/details/50473788        HandlerThread 可以帮助创建一个拥有有效 Looper 的后台线程,该 Looper 会关联一个 Handler,而 Handler 中的 MessageQueue 会处理所有的任务

2016-01-07 23:25:40 565

原创 Handler 和 HandlerThread 的简单使用

HandlerThread类是一个线程专门处理Hanlder的消息,依次从Handler的队列中获取信息,逐个进行处理,保证安全,不会出现混乱引发的异常。HandlerThread继承于Thread,所以它本质就是个Thread。与普通Thread的差别就在于,它有个Looper成员变量。关于 HandlerThread 在后面的文章中还有介绍。Handler 还存在一些缺陷,它可能会照成

2016-01-07 08:57:53 1104

原创 JSON 的解析

JSON 的全称是 JavaScript Object Notation,即 JavaScript 对象符号,是一种轻量级的数据交换格式。JSON 提供了多种语言之间完成数据交换的能力,是一种理想的数据交换格式。       JSON 主要有如下两种数据结构:(1)、有 key-value 对组成的数据结构。(2)、有序集合。        下面介绍 JSON 的解析方式:--

2016-01-04 19:53:42 425

转载 SoundPool 播放音效,VideoView 播放视频的简单介绍

如果应用程序经常播放密集、短促的音效,这时使用 MediaPalyer 就不合适了。MediaPalyer 的缺点如下:-----> 资源占用量较高,延迟时间较长。-----> 不支持多个音频同时播放。Android 提供了 SoundPool 来播放音效,SoundPool 使用音效池的概念管理多个音效,例如它可以开始就加载10个音效,以后在程序中按银熊的 ID 进行播放。Sou

2016-01-03 15:15:17 612

转载 使用 ContentProvider 管理联系人(包括每人有多个电话号码)

Android 系统提供了 Contacts 应用来管理联系人,而且 Android 系统还为联系人管理提供了 ContentProvider,这就允许其他应用程序以 ContentResolver 来管理联系人数据。Android 系统用于管理联系人的 ContentProvider 的几个 Uri:-----> ContactsContract.Contacts.CONTENT_URI

2016-01-02 19:31:32 2217

转载 Android 图片的内存优化

网上有着几乎相同的关于 Android 图片的内存优化的内容,现对其整理,内容如下:1. 对图片本身进行操作尽量不要使用 setImageBitmap、setImageResource、 BitmapFactory.decodeResource 来设置一张大图,因为这些方法在完成 decode 后,最终都是通过 Java 层的 createBitmap 来完成的,需要消耗更

2016-01-01 20:46:03 378

转载 Sun的JDK7、OpenJDK及IcedTea释疑

前几个小时,一位 google 发言人称:“作为一个开源平台,安卓是基于开源社区的合作”,“针对下一个安卓版本,我们将以Open JDK为基础,为开发人员创建一个共有的代码库,方便他们开发各类app和服务。Google跟OpenJDK社区的合作已经有很长时间,我们期待将来能为OpenJDK项目作出更多贡献。”这就意味着:计划将于明年年底上线的Android N系统将不再依赖目前所使用的

2015-12-30 12:47:05 1101

转载 利用 NotificationManager ,BigTextStyle等,实现普通、自定义、扩展样式,锁屏时,安全通知功能的状态栏通知

应用程序正在后台运行,当前没有用户可见的界面,但还必须将发生的重要事件通知给用户,就可以使用 NotificationManager 发送状态栏通知。通过所有的系统控件,如 Service,BroadcastReceiver 或 Activity,可以将通知发送到 NotificationManager。       下面的示例你会看到一个 Activity ,它在用户离开时发送一系列不同的通

2015-12-29 22:10:28 4341 1

转载 平铺 Drawable 元素

如果希望在运行时对基础资源动态改变颜色,避免重复仅在颜色方面有所变化的常见资源。则可以使用颜色滤镜,对任意 Drawable 实例应用颜色遮罩。        Drawable 颜色滤镜通常是完全不透明的,但 Android 框架还支持通过 PorterDuff.XferMode 进行部分混合。只可以从 Java 代码中执行此方法。        下面的是没有加颜色滤镜时的输出:

2015-12-28 21:02:45 374

转载 使用 Palette 提取图片调色板

使用 Palette 支持包分析图片的像素数据,并为旨在补充此图片的背景和文本产生颜色样本。        调色板仅作为 Android 支持库中的模块提供,它不是核心框架的一部分。然而,目标平台为 API Level 7或之后版本的任意应用程序都可以通过包含支持库使用调色板。可以把 V7 支持库中的关于 palette 的 jar 包拷贝到应用程序中的 libs 包下。        效

2015-12-27 22:40:02 2147

转载 TextureView 的使用

在上文中介绍了 SurfaceView, TextureView 和普通的 View 的区别。现在介绍SurfaceView 和 TextureView的区别。        TextureView 适用于 Android 4.0 和之后的版本,在很多的情况下可以顺便作为 SurfaceView 的替代品来使用。TextureView 的行为更像传统的 View,可以对绘制在它上面

2015-12-27 16:36:07 6395

原创 SurfaceView 实现高性能的绘制

先说说自定义 View 绘图机制的缺陷:1. View 缺乏双缓冲机制;2. 当程序需要更新 View 上的图片时,程序必须重绘 View 上显示的整张图片;3. 新线程无法直接更新 View 组件。        由于 View 存在上述的缺陷,所以通过自定义 View 来实现绘图,尤其是游戏中的绘图时性能并不好。Android 提供了一个 SurfaceView 来代替

2015-12-27 10:45:00 4844

转载 ViewOverlay 的使用

在视图上绘制内容的一种方法是使用 ViewOverlay 实现。ViewOverlay 和 ViewGroupOverlay 用于添加可在视图顶部绘制的任意数量的 Drawable 对象。但是应用程序不能直接创建ViewGroupOverlay,而是在层次结构中的任意视图上调用 getOverlay() 来获得ViewOverlay。视图被约束为只能在其边界内绘制,因此如果覆盖层中的内容延

2015-12-25 21:41:24 3382

转载 利用 2D 图形和 PorterDuffXferMode 等实现被遮罩的图片

利用 2D 图形和 PorterDuffXferMode 等实现被遮罩的图片

2015-12-24 21:25:04 1078

原创 RippleDrawable 的简单使用

RippleDrawable 的简单使用

2015-12-23 23:38:12 7428

原创 利用 ORMLite 数据库,ViewPager 等实现简易的登陆界面

利用 ORMLite 数据库,ViewPager 等实现简易的登陆界面

2015-12-23 18:56:55 663

原创 利用 ViewPager 等,实现带小圆球的图片滑动,并且只有第一次安装app时才出现欢迎界面(图片)

利用 ViewPager 等,实现带小圆球的图片滑动,并且只有第一次安装app时才出现欢迎界面(图片)

2015-12-22 22:17:00 1482

转载 利用 viewPager ,ShapeDrawable 实现带小圆球的页面滑动

利用 viewPager ,ShapeDrawable 实现带小圆球的页面滑动

2015-12-21 22:16:03 664

原创 动态绘制二维图形 ShapeDrawable

动态绘制二维图形 ShapeDrawable

2015-12-21 17:09:10 1200

原创 TextInputLayout 的简单使用

TextInputLayout 的简单使用

2015-12-20 23:33:05 2965

原创 Snackbar 的简单使用

Snackbar 的简单使用

2015-12-20 19:45:46 1783

转载 示例代码中的 SlidingTabLayout 简单使用(二)

示例代码中的 SlidingTabLayout 简单使用(二)

2015-12-19 22:37:40 3736

空空如也

空空如也

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

TA关注的人

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