android
文章平均质量分 85
安辉就是我
当我们失去了青春的时候,起码我们还留下了代码.
展开
-
分享一个自己的开源项目ShapeView
在家办公都快1个月了,人都要疯了。希望疫情早点过去,加油武汉,加油中国!!!今天给大家分享一个我自己封装的小项目,我们公司的产品也在使用,就是使用自定义属性替代项目中的shape文件,首先看效果图:从效果图中可以看出,覆盖了App中常用的按钮效果,弧度、按压效果、标签选择、按钮渐变色等。如果用shape.xml实现的话,项目drawable目录下如图所示:你会发现需要写很多shape文件...原创 2020-03-05 00:13:52 · 641 阅读 · 0 评论 -
Android6.0运行时权限
从 Android 6.0(API 级别 23)开始,用户在使用软件时向其授予权限,而不是在安装时授权。这个方法可以简化安装过程,用户在安装或者更新软件时不需要授予权限。它还能让用户对应用的功能进行控制。例如一个摄影应用,他使用摄像头权限是正常的,但是用户无法理解这个应用要读取联系人信息。系统权限分为两类:正常权限跟危险权限正常权限不会直接给用户隐私权带来风险。在AndroidManifest.x原创 2017-04-28 16:08:36 · 3624 阅读 · 0 评论 -
Android自定义spinner下拉框实现的实现
一:前言本人参考博客:http://blog.csdn.net/jdsjlzx/article/details/41316417 最近在弄一个下拉框,发现Android自带的很难实现我的功能,于是去网上找到一份Demo,但是发现没有封装的好,并且还有很多重复的代码,于是我在这位前辈的基础上进行了修改.并且重新进行了封装,代码变得简单,并且具有可读性.二:实现原理1.就是一原创 2015-11-04 14:44:17 · 8245 阅读 · 0 评论 -
gson解析json
json介绍JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。现在大部分APP都使用json给前端返回数据。gs原创 2017-05-12 17:33:14 · 5234 阅读 · 2 评论 -
自定义View以及自定义属性
Android自定义View以及自定义属性原创 2016-12-10 14:33:10 · 2344 阅读 · 2 评论 -
android标题栏上面弹出提示框(二) PopupWindow实现,带动画效果
需求:上次用TextView写了一个从标题栏下面弹出的提示框.android标题栏下面弹出提示框(一) TextView实现,带动画效果, 总在找事情做的产品经理又提出了奇葩的需求。之前在通知栏显示的提示需要在标题栏上面弹出提示框,然后用动画去显示隐藏,并且在大部分Activity上都要显示。问题1:用上次那个TextView隐藏在布局文件中肯定不行了,不然每个activity都要修原创 2015-10-27 21:33:53 · 6363 阅读 · 4 评论 -
AndroidN多窗口支持
Android N 可以同时显示多个应用窗口。 在手机上,两个应用可以在“分屏”模式中左右并排或上下并排显示。例如,用户可以 在上面窗口聊QQ,下面窗口发送短信。如图所示,两个app在分屏模式中上下显示: 如何让你的app支持多窗口?如果你的app支持Adnroid N,在AndroidManifest.xml文件中对 或 节点设置android:resizeableActivity就能启用或者原创 2017-05-15 20:27:29 · 2784 阅读 · 0 评论 -
Handle的原理(Looper、Handler、Message三者关系)
介绍前面的内容对Handler做了介绍,也讲解了如何使用handler,但是我们并不知道他的实现原理。本文从源码的角度来分析如何实现的。首先我们得知道Handler,Looper,Message Queue三者之间的关系 - Handler封装了消息的发送,也负责接收消。内部会跟Looper关联。 - Looper 消息封装的载,内部包含了MessageQueue,负责从MessageQueue原创 2017-05-20 16:09:54 · 10873 阅读 · 6 评论 -
Broadcast Receiver基本使用
Broadcast Receiver介绍Broadcast Receiver翻译成中文叫“广播接收器”,所以它的作用是用来接收发送过来的广播的。Android应用程序可以发送或接收来自Android系统和其他Android应用程序的广播消息,类似于发布订阅设计模式。当有兴趣的事件发生时发送这些广播。例如,Android系统在各种系统事件发生时发送广播,例如当系统启动或设备开始充电时。应用程序也可以发原创 2017-02-06 14:52:48 · 3336 阅读 · 0 评论 -
RecyclerView使用大全
RecylerView介绍RecylerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,这一点从它的名字recylerview即回收view也可以看出。官方对于它的介绍则是:RecyclerView 是 ListView 的升级版本,更加先进和灵活。RecyclerView通过设置LayoutManager,ItemDe原创 2017-01-05 21:12:45 · 3658 阅读 · 2 评论 -
Android学习路线总结,绝对干货
一、前言不知不觉自己已经做了几年开发了,由记得刚出来工作的时候感觉自己能牛逼,现在回想起来感觉好无知。懂的越多的时候你才会发现懂的越少。如果你的知识是一个圆,当你的圆越大时,圆外面的世界也就越大。最近看到很多Android新手问Android学习路线,学习方法啊,如何入门啊,所以我从网上找了一些资料,然后以我的工作经验给大家总结一下,让你们少走弯路,提取一些工作中经常用到的技术。二、学习知识汇总1、原创 2016-04-26 18:13:52 · 34934 阅读 · 5 评论 -
PopupWindow底部弹出
说明:从屏幕底部弹出PopupWindow,有弹出隐藏动画效果.背景设置透明度.效果图如下:1.MainActivity.java 显示popwindow,宽高跟屏幕大小一样,设置一个透明度背景public class MainActivity extends Activity { @Override public void onCreate(Bundl原创 2015-08-19 19:28:09 · 5726 阅读 · 2 评论 -
Android N开发 你需要知道的一切
Android N开发,你需要知道的一切......翻译 2016-05-06 13:58:14 · 11527 阅读 · 0 评论 -
带你实现开发者头条(一) 启动页实现
对于很多初学者或者刚工作的Android新手来说,我们的项目经验还停留在做demo的阶段,有没有一种很low的感觉,并且当你真正上手做大项目的时候又不知道把自己学到的东西用上去。。有一种自己家里有座金山却不知道可以用来换钱换吃的。经过345大神的提醒,说觉得开发者头条这个app不错,用到了很多android中常用的技术,叫我写一系列的文章,去模仿一个商业的app。于是我去下载了一个开发者头条app(原创 2016-04-16 21:21:26 · 7850 阅读 · 10 评论 -
带你实现开发者头条APP(三) 首页实现
一.前言今天实现开发者头条APP的首页。是本系列的第三篇文章,效果图如下: 从gif动态效果图中我们可以看出,最外层有三个tab(精选,订阅,发现),在精选界面顶部有一个轮播的图片广告,广告下面是一个精选文章列表。二.外层三个tab实现我这里用Viewpager实现的,可以左右滑动,灵活的隐藏下面fragment的显示隐藏。1.布局文件布局文件比较简单,上面包涵三个TextView的Relativ原创 2016-04-19 22:11:46 · 10638 阅读 · 4 评论 -
带你实现开发者头条APP(四)---首页优化(加入design包)
一 、前言上次模仿开发者头条首页实现了一个版本,给345大神,我的产品经理一看,又被鄙视了一把,说还在用老的技术,于是乎这三天把整个design包研究了一遍,然后把首页的代码几乎重写了一遍。。。。顺便用上了android studio,方便大家导入。。。效果图如下(window下的录屏没有mac的好): 从gif动态效果图中我们可以看出,跟上次没有啥变化,唯一变化的就是列表上拉的时候会隐藏标题原创 2016-04-24 22:33:45 · 7226 阅读 · 6 评论 -
带你实现开发者头条(二) 实现左滑菜单
今年开始模仿开发者头条的侧滑菜单,是本系列第二篇文章,相信大家已经看到很多app使用这种侧滑。今天我来教大家用android自带DrawerLayout控件实现。DrawerLayout是SupportLibrary包中实现了侧滑菜单效果的控件,可以说DrawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。DrawerLayout分为侧边菜单和主内容原创 2016-04-19 00:46:27 · 5409 阅读 · 3 评论 -
app引导页(背景图片切换加各个页面动画效果)
前言:不知不觉中又加班到了10点半,整个启动页面做了一天多的时间,一共有三个页面,每个页面都有动画效果,动画效果调试起来麻烦,既要跟ios统一,又要匹配各种不同的手机,然后产品经理还有可能在中途改需求,程序员各种苦逼有木有,在这个过程中也学到了蛮多东西的,所以写一篇博客跟大家分享一下.1.显示三个页面的Activity 用view pager去加载三个fragment实现,控制点点点原创 2015-08-27 23:40:05 · 19420 阅读 · 31 评论 -
TextView+Fragment实现底部导航栏
前言:项目第二版刚上线没多久,产品又对需求进行了大改动,以前用的是左滑菜单,现在又要换成底部导航栏,于是今天又苦逼加班了.花了几个小时实现了一个底部导航栏的demo,然后总结一下.写一篇博客.供自己以后参考.也可以给没有做过的朋友进行参考.以后大家有类似的功能就可以在我的demo上就行修改.一.先上效果图: 本来是打算用FragmentTabHost实现的,但是中间那个按钮原创 2015-09-08 22:38:45 · 10181 阅读 · 19 评论 -
android模仿58筛选下拉框(PopupWindow实现)
前言:前几天用58同城APP找房子的时候,看到筛选下拉框蛮不错的,然后也有很多朋友需要实现这个功能,于是从网上下载了一个demo,在他的基础上进行修改,花了几个小时对他的代码进行修改,重构,封装.把一些公共的东西抽取出来,选择下拉框那块做成一个工具类,然后通过接口回调回来.效果图如下:1.MainActivity.java 用户点击区域TextView的时候,初始原创 2015-10-09 21:00:29 · 9722 阅读 · 3 评论 -
OkHttp基本使用
OkHttp介绍Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient,HttpURLConnection相对来说比HttpClient难用,google自从2.3版本之后一直推荐使用HttpURLConnection,并且在6.0版本的sdk中直接删掉了HttpClient类。但是, 上面两个类库和OkHttp比起来就弱爆了, 因为OkHttp不仅具有原创 2017-06-09 15:51:24 · 4574 阅读 · 0 评论 -
如何使用Handler
什么是Handler?Handler可以发送和处理消息对象或Runnable对象,这些消息对象和Runnable对象与一个线程相关联。每个Handler的实例都关联了一个线程和线程的消息队列。当创建了一个Handler对象时,一个线程或消息队列同时也被创建,该Handler对象将发送和处理这些消息或Runnable对象。handler类有两种主要用途:执行Runnable对象,还可以设置延迟。两原创 2017-05-18 20:24:17 · 4639 阅读 · 0 评论 -
封装好的图片滑动框架(AndroidImageSlider)
前言广告轮播条的重要性不言而喻。在很多类型app中出场率都很高。今天给大家介绍一个轮播图开源项目,这个项目把轮播图需要的ViewPager跟计时器做了封装,使用极其方便,支持gradle在线依赖。还封装了几种图片滑动动画。无图无真相:有10多种滑动动画,跟两种滚动状态。能满足大部分需求。如何使用首先在线依赖三个库compile 'com.squareup.picasso:picasso:2.3.2'原创 2017-09-29 00:21:23 · 1227 阅读 · 0 评论 -
Android启动icon切图大小
我们在给app切图的时候不知道告诉ui启动图标切多大,其实你新建一个android项目就知道应该切多大了.新建一个项目会产生几种大小的启动图标.我把各个文件夹下的ic_launcher.png文件都查看了下大小,得出如下值:1.drawable-hdpi 72*722.drawable-mdpi 48*483.drawable-xhdpi 96*964.draw原创 2015-11-16 15:31:31 · 5326 阅读 · 0 评论 -
8.0通知栏新增通知渠道
从Android 8.0(API级别26)开始,所有通知必须要分配一个渠道,对于每个渠道,可以单独设置视觉和听觉行为。然后用户可以在设置中修改这些设置,根据应用程序来决定哪些通知可以显示或者隐藏。创建通知渠道之后,程序无法修改通知行为,创建之后只有用户可以修改,程序只能修改渠道名称跟渠道描述。我们可以为一个应用程序创建多个通知渠道,不同的通知类型用不同的渠道。例如重要通知用一个渠道,可以为...原创 2018-03-30 14:30:16 · 5893 阅读 · 2 评论 -
Glide开源库的使用
关于GlideGlide是一款快速高效的Android图像加载库,注重于平滑的滚动。Glide提供了易用的API,高性能、可扩展的图片解码管道(decode pipeline),以及自动的资源池技术。Glide 支持拉取,解码和展示视频快照,图片,和GIF动画。Glide默认使用的是HttpUrlConnection类下载图片,但是也提供了与Google Volley和Square OkHt...原创 2018-10-28 15:57:51 · 1243 阅读 · 0 评论 -
zxing开源库的基本使用
如果你的项目中有模块跟二维码相关的话,那你一定听过或者用过大名鼎鼎的zxing开源库。什么是zxing?ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。本篇文章就来学习zxing的基本使用,学习了以下几个内容就能满足大部分项目中的二维码相关需求:通过摄像头扫描二维码图...原创 2018-10-25 20:39:36 · 17604 阅读 · 8 评论 -
Android 9.0更新
北京时间2018年8月7日上午,Google 发布了 Android 9.0 操作系统。并宣布系统版本 Android P 被正式命名为代号“Pie”。Android 9.0 利用人工智能技术,让手机变得更智能、更快,并且还可以随着用户的使用习惯进行调整。利用 Wi-Fi RTT 进行室内定位Android 9 添加了对 IEEE 802.11mc Wi-Fi 协议(也称为 Wi-Fi Ro...原创 2018-10-24 20:26:59 · 2768 阅读 · 1 评论 -
我的新书《Android App开发从入门到精通》终于出版啦
前言经过了两年多终于完成了这本书,2016年9月份开始写的,到今天为止2年零2个月,本书的内容大部分是去年完成的,看过我去年总结的读者可能知道,去年事情很多太忙了,导致本命年这本书没有上架(有点小小的遗憾)。工作之余喜欢写写技术文章,对自己的技术做一个总结同时也让后来者站在我的肩膀上,之前一直在CSDN发表文章,也是CSDN博客专家,单篇文章上万阅读量,在这里感谢这个平台,让我的文章被更多人看...原创 2018-11-14 12:42:21 · 22307 阅读 · 34 评论 -
Android调用微信登陆、分享、支付(第二版本)
前言大部分的app都有接入第三方sdk的需求。例如第三方登录需要接入微信、QQ、微博。第三方支付需要接入微信、支付宝、银联。这些我都有使用过,都有使用过他们的sdk,感觉最麻烦的就是微信,不能直接调试,得用正式的签名进行签名才能调试。还有他们官方的demo也是跑不起来的,因为没有签名文件。需要注意的地方也很多。代码实现微信sdk现在支持Android Studio在线引用了,之前都是添加jar的方法原创 2017-09-16 16:01:05 · 9672 阅读 · 17 评论 -
Android WebView基本使用
WebView介绍Android WebView在Android平台上是一个特殊的View, 基于webkit引擎、展现web页面的控件,这个类可以被用来在你的app中仅仅显示一张在线的网页,还可以用来开发浏览器。WebView内部实现是采用渲染引擎来展示view的内容,提供网页前进后退,网页放大,缩小,搜索。Android的Webview在低版本和高版本采用了不同的webkit版本内核,4.4后直原创 2017-09-11 04:51:31 · 178133 阅读 · 19 评论 -
调用Android自带浏览器打开网页
在Android中可以调用自带的浏览器,或者指定一个浏览器来打开一个链接。只需要传入一个uri,可以是链接地址。启动android默认浏览器在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。如果手机本身安装了多个浏览器而又没有设置默认浏览器的话,系统将让用户选择使用哪个浏览器来打开连接。Uri uri = Uri.parse("https://www.baidu.com"原创 2017-09-11 04:44:08 · 54824 阅读 · 1 评论 -
带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载
转载请注明出处:http://blog.csdn.net/lowprofile_coding/article/details/51321896一 、前言最近实在太忙,一个多礼拜没有更新文章了,于是今晚加班加点把demo写出来,现在都12点了才开始写文章。1.我们的目标把RecyclerView下拉刷新上拉加载更多加入到我们的开发者头条APP中。2.效果图3.实现步骤找一个带上拉刷新下载加载更多的R原创 2016-05-05 12:37:06 · 14508 阅读 · 8 评论 -
Android调用微信登陆、分享、支付(第一版)
前言:用了微信sdk各种痛苦,感觉比qq sdk调用麻烦多了,回调过于麻烦,还必须要在制定包名下的actvity进行回调,所以我在这里写一篇博客,有这个需求的朋友可以借鉴一下,以后自己别的项目有用到也有个找资料的地方.一.微信登陆分三个步骤:1).微信授权登陆2).根据授权登陆code 获取该用户token3).根据token获取用户资料4).接收微信的请求及返回值原创 2015-08-29 14:20:34 · 11112 阅读 · 8 评论 -
Android 8.0 功能和 API
Android 8.0 为用户和开发者引入多种新功能。本文重点介绍面向开发者的新功能。原创 2017-09-25 12:50:10 · 5951 阅读 · 10 评论 -
OkHttp封装
### 前言 上个知识点介绍了OKHttp的基本使用,在Activity中写了大量访问网络的代码,这种代码写起来很无聊,并且对技术没什么提升。在真实的企业开发中,肯定是把这些代码封装起来,做一个库,给Activity调用。封装之前我们需要考虑以下这些问题: - 封装基本的公共方法给外部调用。get请求,Post请求,PostFile - 官方建议OkHttpClient实例只new一次,那我们原创 2017-08-31 18:21:36 · 6989 阅读 · 3 评论 -
OkHttp封装之后使用
代码都封装好了,上层Activity如何调用呢?1.依赖如果是android studio开发支持在线依赖(我已经把项目添加到jcenter上):compile 'com.ansen.http:okhttpencapsulation:1.0.1'如果是eclipse那你先把ide切换到android studio吧。。。不闲麻烦的话也可以把源码module的源码copy出来,反正也就几个类。2.初始原创 2017-08-31 18:30:48 · 5392 阅读 · 6 评论 -
Android检查更新下载安装
检查更新是任何app都会用到功能,任何一个app都不可能第一个版本就能把所有的需求都能实现,通过不断的挖掘需求迭代才能使app变的越来越好。检查更新自动下载安装分以下几个步骤:请求服务器判断是否有最新版本(通过versionCode)如果有最新版本,就把最新的apk文件下载到本地下载完成之后给系统发起一个安装的Intent。打开项目下面app下面build.gradle文件,我们可以看到里面原创 2017-09-05 15:32:00 · 42814 阅读 · 14 评论 -
FileProvider解决FileUriExposedException
FileUriExposedException在给app做版本升级的时候,先从服务器下载新版本的apk文件到sdcard路径,然后调用安装apk的代码,一般写法如下:private void openAPK(String fileSavePath){ File file=new File(fileSavePath); Intent intent = new Intent(Intent原创 2017-09-07 10:53:31 · 2948 阅读 · 2 评论 -
Android Studio发布项目到jcenter,一行代码引入Module
前面我们使用自己封装的okhttp项目时候,只需要app/build.gradle文件中加一行代码就能使用项目。compile 'com.ansen.http:okhttpencapsulation:1.0.1'那是因为我之前就把封装的module提交到了jcenter服务器。所以android sutdio把从jcenter服务器把类库下载下来。提交项目到jcenter当我们做好一个轮子的时候,或原创 2017-09-08 17:37:55 · 3948 阅读 · 9 评论