Android技术
文章平均质量分 86
ZHU_文涛
我的指间,有改变世界的力量!
展开
-
Android 自定义View一个控件搞定多种水波纹涟漪扩散效果
效果图实现思路这个效果实现起来并不难,重要的是思路 此View满足了多种水波纹涟漪扩散效果,这要求它能满足很多的变化 根据上面的样式,可以看出此View需要满足以下变化圆圈从中心可循环向外扩散圆圈之间的扩散间距可以改变可控制扩散圆的渐变度圆圈可以是线条样式或者实心样式圆圈扩散的速度可以控制适配圆圈不同大小下的扩散效果具体实现创建自定义属性首...原创 2018-03-19 10:16:19 · 9772 阅读 · 5 评论 -
Android 使用CoordinatorLayout实现滚动标题栏效果
在Material Design里,CoordinatorLayout通常用来作为顶层视图,来协调处理各个子View之间的动作,从而实现各种动画效果,如Snackbar与FloatingActionButton的配合显示效果,就是以CoordinatorLayout作为根布局来实现的CoordinatorLayout提供Behaviors接口,子View通过实现Behaviors接口来协调和其它Vi原创 2016-09-05 22:39:07 · 12535 阅读 · 1 评论 -
Android 使用Notification创建推送通知
创建方法首先要获取一个NotificationManager管理对象NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);NotificationManager 是一个系统 Service,所以需要通原创 2016-08-13 00:06:59 · 6927 阅读 · 1 评论 -
Android 处理图片放大缩小时报错java.lang.IllegalArgumentException: pointerIndex out of range pointerIndex=-1 ...
完整的错误信息:java.lang.IllegalArgumentException: pointerIndex out of range pointerIndex=-1 pointerCount=1 at android.view.MotionEvent.nativeGetAxisValue(Native Method) at android.view.MotionEve原创 2016-08-14 23:08:08 · 9933 阅读 · 0 评论 -
Android 坐标系与视图坐标系图解
1.Android坐标系在Android中,将屏幕的最左上角顶点作为Android坐标系的原点 从原点向右是X轴的正方向,从原点向下是Y轴的正方向View提供了getLocationOnScreen( int[] location)方法来获取在整个屏幕内的绝对坐标,该坐标值为View左上角的坐标。注意该View的坐标值是从屏幕左上角开始获取的,所以也包括了通知栏的高度 该方法的具体实现原创 2016-09-04 21:34:10 · 3846 阅读 · 0 评论 -
Android Snackbar使用方法及小技巧-design
Snackbar和Toast相似,都是为了给用户提供交互信息,Snackbar是固定在底部的,显示时从下往上滑出要使用Snackbar,需要在项目的build.gradle中添加依赖dependencies { compile 'com.android.support:design:23.4.0'}Snackbar的使用方法和Toast很相似Snackbar.make(mOpenTv,原创 2016-08-24 23:04:41 · 18010 阅读 · 5 评论 -
Android 使用TabLayout制作下划线能滑动的Tab标签页-design
google提供的Design开发包里,有很多实用好看的新控件,这里介绍下使用TabLayout+ViewPager实现下划线能滑动的Tab标签页效果图 不使用google的desgin包,我们也可以自己制作这样的效果,详看这篇这篇博客:http://blog.csdn.net/zhuwentao2150/article/details/51407661要使用Design包,在项目的build原创 2016-08-22 22:47:08 · 8227 阅读 · 1 评论 -
Android ListView监听滑动事件的方法
ListView的主要有两种滑动事件监听方法,OnTouchListener和OnScrollListener1.OnTouchListenerOnTouchListener方法来自View中的监听事件,可以在监听三个Action事件发生时通过MotionEvent的getX()方法或getY()方法获取到当前触摸的坐标值,来对用户的滑动方向进行判断,并可在不同的Action状态中做出相应的处理原创 2016-09-03 23:39:42 · 27975 阅读 · 3 评论 -
Fiddler小技巧-测试上传文件接口
相信用过Fiddler的同学都清楚,Fiddler是个强大好用的调试工具 当服务器端的同学把服务器布置好后,移动端的同学如果要先写好代码再一个一个的对api接口进行调试的话,效率非常的低,这个时候就可以使用Fiddler对服务端的api接口进行调试了,一般来说,只要Fiddler测试通过了的api接口,都可以在手机里面跑通的 这里以上传图片为例,介绍下如何使用Fiddler测试上传文件接口打开F原创 2016-08-23 14:41:20 · 11445 阅读 · 0 评论 -
Android 使用PopupWindow实现下拉列表
来看效果图:在实现这个效果前,先来了解下PopupWindow的常用方法构造方法在实例化PopupWindow窗口时,需要我们自己传入窗口的界面视图和窗口的尺寸 实例化PopupWindow的方法常用以下几种public PopupWindow(View contentView)public PopupWindow(int width, int height)public PopupWindo原创 2016-08-10 22:34:29 · 17249 阅读 · 3 评论 -
Android 图片Drawable类型之Layer List
层列表图像Layer List,可以使用多张图片合成一张图片,有点像PS中的图层叠加效果 语法: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item原创 2016-08-21 19:12:03 · 5800 阅读 · 0 评论 -
Android避免内存溢出(Out of Memory)方法总结
避免内存溢出的方法,主要是对以下三个方面对程序进行优化内存引用在处理内存引用之前,我们先来复习下什么是强引用、软引用、弱引用、虚引用强引用:强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。原创 2016-08-02 20:21:00 · 10312 阅读 · 0 评论 -
Android FloatingActionButton使用方法及小技巧-design
FloatingActionButton(简称FAB)的使用方法非常的简单和一个普通控件一样,在xml布局文件中定义(记得导入Design包) <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content"原创 2016-08-30 23:02:38 · 12991 阅读 · 0 评论 -
Android 实现WebView与JavaScript的互相调用
很多复杂的UI界面,在Android中需要配合大量xml代码和java代码实现,而使用HTML5可以非常轻松的实现出来,而且具有很好的跨平台特性,让我们不必为了多个平台而重写代码,H5学习成本也较低,上手快。虽然从目前来说H5在Android系统中的速度可能还欠佳一些,但相信随着手机的性能不断的提高,这些问题都会被解决使用H5开发Android的UI界面,最重要的就是如何实现Js代码和Java代码之原创 2016-11-03 12:32:12 · 2111 阅读 · 3 评论 -
AndroidStudio部署项目时出现错误:Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled
今天更新了Android Studio,结果在部署项目到模拟器的时候出现了错误:Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled解决方法点击工具栏中的Tools,选中Android,最后点击Enable ADB Integration,使其前面出现✔号就OK了原创 2016-04-09 14:15:34 · 29034 阅读 · 7 评论 -
Android 使用jQuery实现item点击显示或隐藏的特效
效果图 分析上图中的功能在很多APP上都可能用到过,例如app的帮助界面,告诉用户如何使用APP一般的实现方式都是通过ListView来实现的,实际上此类需求非常简单,完全可以用WebView加载HTML来实现抽屉样式的显示隐藏特效可以使用jQuery来实现,一个函数就可以搞定实现集成jQuery网页中需要使用到jQuery,最新版本可以去官网下载 ...原创 2018-03-05 10:37:09 · 2139 阅读 · 0 评论 -
Android 跨进程通信(IPC)机制的探索与研究
概述Android中IPC机制的由来Android中的跨进程场景进程间通信的影响跨进程通信方式文件共享BundleAIDL(1)创建AIDL接口(2)根据AIDL创建远程Service服务(3)绑定远程Service服务Messenger(1)创建服务端Messenger(2)创建客户端Messenger(3)绑定远程服务端ContentProvider...原创 2018-04-11 10:26:47 · 3371 阅读 · 1 评论 -
Android 自定义View之八等份仪表盘
效果图实现思路首先拆解这个View,可以分成四个部分来绘制外圆刻度部分,包含最外面的刻度圆和里面对应的数值,此外圆分为八个等份,每等份中包含五个小等份,所以总共需要40个刻度。这里不是一个完整的圆,此外圆部分占一个完整圆的240度内圆刻度部分,此处总共有100个刻度,与外圆刻度保持着对应关系,进度发生改变时需要改变对应部分的颜色,超过外圆刻度6部分的颜色需要变成红色指针部分,指针由一个中间的圆原创 2017-08-31 11:41:29 · 4299 阅读 · 2 评论 -
Android 自定义View之仿华为圆形加载进度条
效果图实现思路可以看出该View可分为三个部分来实现最外围的圆,该部分需要区分进度圆和底部的刻度圆,进度部分的刻度需要和底色刻度区分开来中间显示的文字进度,需要让文字在View中居中显示旋转的小圆点,小圆点需要模拟小球下落运动时的加速度效果,开始下落的时候慢,到最底部时最快,上来时速度再逐渐减慢具体实现先具体细分讲解,博客最后面给出全部源码(1)首先为View创建自定义的xml属性 在工程原创 2017-08-25 09:54:14 · 5561 阅读 · 5 评论 -
Android 汉字转拼音的多种实现方式
汉字转拼音是我们在开发中经常会使用到的功能,比如在进行汉字排序、拼音检索时就需要将汉字转成拼音 这里介绍几个常用的处理方法pinyin4jjpinyinASCII码映射TinyPinyin需要测试生僻字的可以用以下链接中的文字 http://xh.5156edu.com/page/z4745m2559j18770.html一、使用pinyin4j开源库使用此方法需要添加依赖jar包原创 2017-08-14 09:39:14 · 19867 阅读 · 2 评论 -
Android Retrofit报错NoClassDefFoundError异常
使用Retrofit 2时踩了个坑,自己封装的Retrofit工具在4.4的手机上跑崩了,测试了下机型,发现在Android 5.x以上的手机就不会出现这样的情况,而在Android 4.x手机上这个问题是必现的错误信息java.lang.NoClassDefFoundError: retrofit2.Retrofit$Builder一看到这个错误信息,马上联想到是否是类缺失了,但原创 2017-08-18 14:49:47 · 2636 阅读 · 0 评论 -
Android 使GridView横向水平滚动的实现方式
Android为我们提供了竖直方向的滚动控件GridView,但如果我们想让它水平滚动起来,就需要自己实现了。一、单行横向显示gif实现思路在代码中动态设置GridView的NumColumns,使其等于GridView要显示的数据集合大小。动态设置item项宽度,结合数据集合大小来设置GridView的总宽度。使用HorizontalScrollView包裹Grid原创 2017-05-02 10:52:04 · 22652 阅读 · 12 评论 -
Android View绘制三大流程探索及常见问题
View绘制的三大流程,指的是measure(测量)、layout(布局)、draw(绘制) measure负责确定View的测量宽/高,也就是该View需要占用屏幕的大小,确定完View需要占用的屏幕大小后,就会通过layout确定View的最终宽/高和四个顶点在手机界面上的位置,等通过measure和layout过程确定了View的宽高和要显示的位置后,就会执行draw绘制View的内容到手机原创 2016-12-20 16:14:35 · 5235 阅读 · 0 评论 -
教你实现Android下划线能滑动的Tab标签页
效果图如下,点击对应的Tab标签或者滑动屏幕则可跳转到对应的页面,并且底部的横线也会滑动到对应的Tab标签下面顶部的导航栏使用三个TextView实现,下划线就是一个ImageView加载了一张横线图片,内容区是用ViewPager实现。需要注意的是,使用ViewPager控件需要导入android.support.v4.jar兼容包,不过如果你是使用AndroidStudio原创 2016-05-14 23:18:50 · 12855 阅读 · 4 评论 -
Retrofit2使用案例及源码解析
Retrofit2是一个基于OkHttp进行封装的网络请求框架,Retrofit中使用了大量的@GET、@POST这类注解方法,刚开始学习的时候会感觉特别的不适应,但只要理解了这些注解方法和使用逻辑,会发现网络请求也可以做的很优雅一、案例 先写一个简单的程序跑起来,再详细讲解 首先添加依赖compile 'com.squareup.retrofit2:retrofit:2.1.0'原创 2016-12-27 22:27:12 · 3426 阅读 · 0 评论 -
Android 新安全机制之动态权限申请
Android6.0的SDK,对权限的申请机制发生了一些变化。 在Android6.0之前,用户安装APP时就要为其授予对应的权限,不然程序就无法安装,而6.0之后,我们可以直接安装,并可对应用的权限进行管理,这样极大的保护了用户的隐私,但也给我们开发人员造成了些小麻烦(测试人员经常提单反映说某个功能未实现,其实是把权限关闭造成的)Google将应用的权限分为两类Normal Perm原创 2016-12-05 23:07:40 · 2399 阅读 · 2 评论 -
Toast使用小技巧-防止重复创建
Toast是我们在Android开发中经常被使用到的 我们在创建Toast时,都是这么写:Toast.makeText(context, "message", Toast.LENGTH_SHORT).show();一般来说这样写是没有问题的,但是当用户多次连续触发Toast时,这样写的缺点就体现出来了: 多个Toast会排队等待显示,这样的用户体验非常差 不只是重复显示的问题,每调用一次mak原创 2016-11-09 16:43:14 · 3292 阅读 · 1 评论 -
Android 自定义Animation实现View摇摆效果
使用自定义Animation,实现View的左右摇摆效果,如图所示:代码很简单,直接上源码activity_maini.xml布局文件:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layou原创 2016-08-08 23:37:20 · 6550 阅读 · 0 评论 -
Android 简单的自定义Dialog
效果图 Dialog的详细用法看这篇博客:http://blog.csdn.net/zhuwentao2150/article/details/51478053我们自定义的CustomDialog是通过继承Dialog类并添加自定义的布局来实现的/** * 自定义Dialog弹窗 * Created by zhuwentao on 2016-08-19. */public class Cu原创 2016-08-19 23:25:02 · 8567 阅读 · 0 评论 -
Android 解决部分手机拍照后获取的图片被旋转的问题
最近又被测试MM找茬了,调用Android系统拍照功能后,三星手机拍摄后的照片被旋转了90度,横着拍给你变成竖的,竖的拍给你变成横的。。。其它品牌的手机都是正常的,就三星出现这个怪事。在Android适配上,我原来一直以为国内的小米手机够奇葩了,结果还有更奇葩的!你说你没事旋转照片干啥,实在是猜不透其居心何在,纯粹是在给开发者制造麻烦啊!解决办法是获取到拍照后照片被旋转的角度,再旋转回去就原创 2016-07-23 00:24:35 · 24088 阅读 · 17 评论 -
Android 图片ImageView.ScaleType详解
ImageView控件中有个属性叫scaleType,scaleType用来控制在ImageView上显示的图片样式。ImageView提供了以下方法选择scaleType的样式public void setScaleType (ImageView.ScaleType scaleType) 相关的xml属性:android:scaleType接下来我们使用图片来演示各个样式的显原创 2016-07-10 15:52:38 · 3910 阅读 · 0 评论 -
Android百分比布局支持库——com.android.support:percent
使用android-percent-support-lib-sample项目的价值:提供PercentRelativeLayout、PercentFrameLayout给大家使用,对以下属性支持使用百分比方式layout_widthPercentlayout_heightPercent layout_marginPercentlayout_marginLeftPercent原创 2016-06-07 11:53:17 · 3533 阅读 · 0 评论 -
Android 文本监听接口TextWatcher详解
TextWatcher是一个用来监听文本变化的接口,使用该接口可以很方便的对可显示文本控件和可编辑文本控件中的文字进行监听和修改TextWatcher接口中定义了三个方法: public void beforeTextChanged(CharSequence s, int start, int count, int after) {}该方法在文本改变之前调用,传入了四个参数:CharSequ原创 2016-05-31 17:48:06 · 22560 阅读 · 1 评论 -
什么是回调函数?如何运用?
在使用开源项目的时候经常会使用到回调函数,如果把回调函数弄清楚了,那么对我们深入了解开源项目会有很大帮助。回调函数百度百科的解释:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响原创 2016-03-29 17:19:36 · 10666 阅读 · 1 评论 -
详解-Android各种提示框
Android开发中我们经常需要用到提示框,以便更好的和用户进行交互首先我们来看看效果图实现这个其实很简单,Android的API已经为我们提供了一个提示框类AlertDialog,我们实现的时候直接调用它就好了1.简单的消息提示框// 简单消息提示框private void showExitDialog01(){ new AlertDialog.Bui原创 2016-05-23 23:36:29 · 29646 阅读 · 0 评论 -
加快AndroidStudio运行速度的方法
之前用过其他人加快AndroidStudio构建速度的方法,确实在编译时有一定的效果但是在实际使用中,随着项目越来越大,AndroidStudio有时还是会卡死,或者直接黑屏,我的笔记本是8g内存 + i5 2.5GHz的cpu,肯定不是电脑配置问题引起的后来去google了一下,发现谷歌好坑啊!把大家的电脑配置都“阉割”了啊!原因AS限制了Java虚拟机启动的内存大小原创 2016-04-11 15:38:48 · 14127 阅读 · 1 评论 -
使用Genymotion时出现INSTALL_FAILED_CPU_ABI_INCOMPATIBLE错误
把一些应用安装到Genymotion上时提示genymotion Installation failed with message INSTALL_FAILED_CPU_ABI_INCOMPATIBLE,如下并且IDE也出现了错误提示:这是为何呢?这是因为Genymotion模拟器里缺少了 Google Play 市场等各种谷歌服务应用,而有些应用需要这些服务才原创 2016-04-07 18:12:49 · 6299 阅读 · 3 评论 -
加速Android Studio/Gradle构建的方法
已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。开启gradle单独的守护进程在下面的目录下面创建gradle.properties文件:/home//.gradle/ (Linux) /Users//转载 2016-04-06 14:05:38 · 3330 阅读 · 0 评论 -
如何修改Android Studio中默认生成的注释信息
使用Android Studio时,每当我们新建一个文件,系统就会给我们自动生成一个文件注释信息,如下:在实际开发程序时,我们都会给文件添加上一些关于文件的注释信息,如开发者的姓名,开发的时间,修改的版本号,开发者的联系方式等等。那么在android studio中该如何设置呢?一、打开菜单栏File -> Settings,或者面板上的小扳手图标二、在弹出原创 2016-04-05 15:27:57 · 10682 阅读 · 0 评论 -
Android自定义的网络连接工具类HttpUtil
Android网络连接工具类HttpUtil该工具实现了发送get和post请求,请求的结果以String字符串的形式返回,比较适合接收服务器端发送过来的JSON字符串数据get方法适合从服务器端获取数据post方法适合发送数据到服务器端使用的时候直接调用get或post方法就好get方法传递一个url请求post方法传递一个url请求和要发送到服务器端的数原创 2015-11-25 22:58:26 · 5275 阅读 · 0 评论