Android基础
文章平均质量分 85
宿罪
人没有梦想和咸鱼有什么区别,有梦就要去追,不为失败找借口,只为成功找方法。
展开
-
TabLayout轻松实现仿今日头条顶部tab导航效果
前言 自android5.0出来后,谷歌使用了Material Design设计风格,随着带来了许多新的控件,如:SnackBar,TextinputLayout,以及今天使用的TabLayout,这些新控件的出现使得我们这些开发者更加方便,下面我们用TabLayout实现仿今日头条顶部导航的效果,当然是最新版的今天头条。这是我们今天要实现的一个效果:大家看到这个效果,你会怎么实现它?在以前,我们可原创 2015-12-14 13:56:44 · 5837 阅读 · 0 评论 -
Android基础篇(二),Service及IntentService
一,概述上篇文章讲到了四大组件之activity的生命周期,这篇文章将介绍与activity最相似的另外一个组件service以及它的一个子类intentService,service组件是android四大组件中与activity最为相似的组件了,它和activity最大的区别在于没有界面,长期运行在后台,还有它的生命可以是四大组件中最长的一个了,没有界面,生命周期持续长是service作为and原创 2015-09-02 13:51:38 · 1433 阅读 · 0 评论 -
Android面向holder编程,再度封装代码
概述 在我们实际开发过程中,当我们软件的功能做得多的时候,这个时候我们的代码量也就越来越大了,如果我们不把代码进行封装,不仅让我们开发的时候变得困难,而且不利于维护,特别是团队开发的时候,如果我们一个Activity就几百行,当然几百行也算是少的了,甚至可能上千行。这个时候如果让你看几千行的代码,你是不是觉得好费劲呢,而且开发起来也变得困难了。面向holder编程思想其实很简单,就是简单的把一原创 2015-08-27 14:34:03 · 3992 阅读 · 0 评论 -
Android开源项目EventBus3.0的使用
前言:相比于大牛,自己只能算是个菜菜菜鸟,所以这篇文章不敢说是什么讲解EventBus的使用,但可以算是自己使用EventBus的笔记吧,因为自己在一开始如果不看一些教程自然也不知道怎么使用它,所以在记录自己的使用笔记时肯定参考了一些大牛,前辈的文章教程或是度娘,谷哥。不过,在看了一些别人写的文章教程后自然会有些困惑,或是由于自己的理解能力有限,或是自己个人有强迫症和对文章抱有质疑态度,或是因为别人原创 2016-02-24 14:02:58 · 4893 阅读 · 0 评论 -
【Android基础】Activity及其生命周期
一、Activity使用概要1. Activity概述 Activity是android四大组件中使用最多的,通常也是我们新手接触的第一个组件。Activity是android提供的一个组件,主要用于提供一个界面(窗口)与用户交互,比如:打电话,发邮件,显示地图等等,这些我们在屏幕上看到的界面都是由Activity这个组件所提供的,所以Activity就像一个视图(View)。每个Activity都原创 2015-08-26 21:28:55 · 1117 阅读 · 0 评论 -
Android实现滑动的几种方式
前言 View的滑动对于View交互性及效果有很大影响,我们可以通过5种方式来实现View的滑动,准确地说是View位置的改变。要改变View的位置,首先我们需要了解Android的坐标系,因为View的是通过坐标来定位的。绝对坐标系 Android系统中,屏幕的最左上角为坐标原点,如下图所示。屏幕最左上角的点为坐标原点,向右向下分别为x轴和y轴视图坐标系 视图坐标系是在View的层级体系中使用到的原创 2017-09-14 15:24:24 · 6257 阅读 · 0 评论 -
Android运行时权限
前言: Android 6.0(api23)引入了运行时权限,它允许应用程序在运行的时候请求权限而不像5.1及更低版本一样在安装的时候请求权限。这样一来,需要请求危险权限(涉及到用户隐私…)的应用在安装的时候就不需要请求权限了,而5.1以前如果安装的时候请求的权限没有通过的话应用就安装不了。同时,这种运行时权限可以由用户随时在设置->应用信息中开启或关闭某项权限,即使某个应用刚才还拥有读取联系人的权原创 2017-08-30 19:09:57 · 798 阅读 · 0 评论 -
浅谈BroadcastReceiver
前言: 广播作为Android四大组件之一,类似于现实生活中的广播,经常用来传递及处理消息,有时候我们的应用程序需要在特定的情况下执行不同的逻辑,如系统开机,网络状态的变化,电源电量的变化…,这些都需要通过广播来实现。不仅如此,有时候我们还需要为我们的程序自定义广播,实现相应的逻辑功能。广播分为标准广播,有序广播,注册又有动态注册及静态注册,按作用域也有全局广播及本地广播。1、广播的静态注册与动态注原创 2017-08-29 21:06:09 · 484 阅读 · 0 评论 -
Android百分比布局库
前言: Android在6.0(api23)引入了百分比布局库,这个库以support包的形式供我们使用。以前的那几种布局中要实现等比分割布局只有LinearLayout的layout_weight属性可以轻松实现,现在不同了,有了这个百分比布局库我们可以更加方便灵活地百分比分割我们的布局,从而使得我们的界面编写更加方便。Android百分比布局库中提供了PercentFrameLayout和Per原创 2017-08-29 19:42:27 · 1213 阅读 · 0 评论 -
Activity的四种启动模式
前言: Activity为什么会有启动模式? 我们可以想想Activity作为Android四大组件中使用最多的一个,经常需要使用Activity将界面显示给用户,这也就设计到了Activity的频繁创建新的Activity(切换Activity)或是已经启动的Activity再次启动(切换回来)。尽管Activity有完整的生命周期回调,但系统又是通过什么来管理众多的Activity的呢?答案是A原创 2017-08-26 16:25:14 · 540 阅读 · 0 评论 -
Activity之间数据相互传递
不同的Activity之间可以相互传递数据,针对以下两种情况可以有两种方法传递数据,相同的地方都是通过Intent进行数据的传递。1、前后Activity的数据传递前一个Activity(A)启动后一个Activity(B)可以在intent中通过putXXX方法添加相应的数据,B则可以通过getIntent方法来得到这个intent,从而取得数据。而当B要向A传递数据的时候就需要通过Ac原创 2017-08-25 17:43:22 · 3940 阅读 · 0 评论 -
CTS,GTS,CTS Verifier失败项总结(持续更新)
在CTS,GTS,CTS Verifier测试中经常会遇到许多问题,需要寻找相应的解决方法以便通过测试,出来IP V6及Google 豁免项外不允许出现其他问题。那么其他问题通常又会是由以下一些原因导致的。软件问题(软件人员配置或是定制Framework导致)驱动问题(如Camera2问题)测试方法问题网络问题(有些项需要使用静态ip地址测试,有些需要使用动态ip)签名问题(找软件帮忙)原创 2017-09-07 14:04:21 · 8934 阅读 · 0 评论 -
Android N 多窗口模式
前言 在智能手机更新换代越来越快,手机屏幕越来越大,手机可以做的事情越来越多,人们已经离不开智能手机了,甚至有的人开始在用手机办公了。在大屏幕手机上,如果一个手机可以一边播放视频,一边上着网,那种体验是非常爽的。终于,在Android 7.0(N)(API 24)引入了多窗口(Android N 的 Nexus Player还有画中画)的支持,也就是分屏显示,可以是上下排列,也可以是左右排列,可以在原创 2017-09-01 16:47:59 · 2065 阅读 · 1 评论 -
Android事件的分发与拦截机制
前言 Android为我们提供了丰富的View及ViewGroup控件,使得我们可以轻松的地完成Android应用界面的绘制,同时还可以自定义精美的View控件。绘制一个界面往往需要众多的View及ViewGroup不断嵌套,由于View可能需要与用户交互,如Button响应用户的点击,EditText响应用户的输入,而ViewGroup也可以响应事件,当多个ViewGroup和View嵌套的时候就原创 2017-09-11 16:00:47 · 2011 阅读 · 0 评论 -
Android视图动画浅析
视图动画 视图动画共有四种,分别为透明度,旋转,平移,缩放动画,如同名字所说一样,它是一种视图上的动画,改变的只是视觉上的效果,实际上View的属性如位置,大小,透明度等并没有受到动画的影响。下面将演示四种视图动画的代码及xml定义使用。代码定义:public void alpha(View v){ AlphaAnimation alphaAnimation = new AlphaAnima原创 2017-09-19 18:54:44 · 988 阅读 · 0 评论 -
Android开发之用户头像上传
一,概述 本篇博客总结一下自己在开发过程中应用到的一些知识,在本篇博客中带领大家完成用户头像选择或者拍照上传,并对图片进行大小的压缩,和形状的控制,可以将用户选择到的图片裁剪成圆形上传。ok,我们开始写一个小的demo,完成用户圆形头像的选取,在写即将实现的效果之前我们看一下即将要实现的效果图二,实现代码activity_main.xml<LinearLayout xmlns:android=原创 2015-08-27 10:44:36 · 30660 阅读 · 55 评论 -
Android studio初体验
1,概述在我写这篇博客的时候,android studio(名字太长了,按照我们一般的习惯,下面即以后我们就简称它为as吧,哈哈)已经比较成熟了,用的人好多,呵呵,既然大家都用它,那我也不能例外啊,对于我们这种程序员,没有一个好的IDE怎么行呢,eclipse很不错,但eclipse就像是一个见多识广的旅行者,而as就像是一个领域的专家,对于广度as对eclipse望尘莫及,而对于深度就要反过来了,原创 2015-09-05 17:03:17 · 1236 阅读 · 0 评论 -
Android基础之ADB常用命令
adb常用命令 需要配置platform-tools和tools目录路径到path环境变量 cmd输入sysdom.cpl快速打开系统属性,找到环境变量设置 环境变量配置方法: 直接将platform-tools和tools的目录路径添加到path环境变量后面 新建platform-tools和tools的系统变量或者用户变量,值分别为platform-tools全路径和原创 2015-11-06 21:37:49 · 1439 阅读 · 0 评论 -
Android开发工具类集锦
概述本人做android开发已有段日子了,在开发的过程中一直使用着工具类,包括别人已经封装好的工具类以及自己封装的工具类,本篇博客向大家介绍自己在开发过程中经常使用到的一些简单实用的工具类,在文章末尾将会献上博客中工具类的代码。1,AppUtils AppUtils封装了和我们android整个应用(Application)相关的一些方法方法说明 getPackageName(Context原创 2015-10-25 12:29:15 · 1418 阅读 · 1 评论 -
【Android基础】android shape详解
一,概述我们在android开发中经常要用到图片,而一些简单的图片我们完全可以用shape形状drawable资源代替,使用shape有一个好处就是可以减小我们apk的大小,因为同样的效果,shape比图片更节省空间,好了,我们废话不多说,下面进入正题。二,shape初识shape是android drawable资源中的一个重要的角色,drawable资源覆盖面广,它不仅代表图片,它可以是一个颜色原创 2015-09-02 07:38:35 · 2679 阅读 · 0 评论 -
给listView添加headView或footView不显示的问题
问题描述今天发现使用listView的一个问题,当我们给listView添加headView或footView的时候,如果我们没给listView设置adapter或者给listView设置的空的adapter即setAdapter(null),这个时候listView不会显示我们设置的headView或者footView原因:谷歌api文档说在调用addHeaderView或addFooterV原创 2015-08-29 21:10:54 · 4129 阅读 · 0 评论 -
XML解析(三),PULL解析XML
昨天写了【XML解析(一)】SAX解析XML 和【XML解析(二)】DOM解析XML两篇文章,有兴趣的朋友可以去看一下,今天我们来学习一下PULL解析XML,刚好可以跟SAX和DOC解析XML的两种方式对比学习,其实Android里面解析XML最常用的也就这三种,而这三种并不一定拘泥于Android开发,同样也可以用在J2EE开发中,下面我们进入本篇文章的学习。一、概述 PULL?,拉?,肯定不是什原创 2015-12-06 08:52:55 · 10260 阅读 · 0 评论 -
XML解析(二),DOM解析XML
上篇文章向大家介绍了SAX解析XML,为了这篇文章理解起来更加方便,所以还没看过SAX解析XML文章的,请戳这【XML解析(一)】SAX解析XML ,这次给大家带来XML解析系列之DOM解析XML一、概述 DOM,擦,这什么鬼,肯定又是什么东西的简称了,没错,DOM是Document Object Model的简称,翻译过来就是文档对象模型,是W3C组织推荐的处理可扩展标志语言的标准编程接口,它以原创 2015-12-05 13:56:24 · 10425 阅读 · 0 评论 -
XML解析(一),SAX解析XML
一、概述 SAX,全称Simple API for XML,是一种以事件驱动的XMl API,是XML解析的一种新的替代方法,解析XML常用的还有DOC解析,PULL解析(Android特有),SAX与DOC不同的是它边扫描边解析,自顶向下依次解析,由于边扫描边解析,所以它解析XML具有速度快,占用内存少的优点,对于Android等CPU资源宝贵的移动平台来说是一个巨大的优势。SAX的优点:解析速原创 2015-12-05 09:38:59 · 29686 阅读 · 1 评论 -
ViewPager+RadioButton轻松实现底部Tab导航
一、概述 实现类似微信哪种底部tab导航的方式有很多种,这篇文章先介绍实现这种底部导航的一种简单的方式,即ViewPager+RedioButton实现底部tab导航。实现之前,我们先看一下即将要实现的导航效果图:OK,下面我们通过代码一步一步实现上图的底部导航效果。二、编写代码第一步:编写主界面的布局,activity_main.xml<LinearLayout xmlns:android="ht原创 2015-12-09 22:24:39 · 3869 阅读 · 0 评论 -
WebView的使用笔记(一)
一、概述 WebView,几乎是每个开发环境都具备的,WP的webbrowser,Android和IOS的WebView。 WebView是android中用来显示页面的视图控件,它的功能相当强大,通过它可以加载显示网页,并具备一般浏览器所具有的功能,具有高度可定制性,因此WebView控件也用来开发浏览器,同时也是android中js与java互调的桥梁,有了这个控件,web前端人员也可以通过原创 2015-12-11 15:48:14 · 2591 阅读 · 0 评论 -
JSON解析高手
前三篇博客分别介绍了xml的三种解析方法,分别是SAX,DOM,PULL解析XML,兴趣的朋友可以去看一下这【XML解析(一)】SAX解析XML,【XML解析(二)】DOM解析XML,【XML解析(三)】PULL解析XML三篇文章学习一下XML解析。我们知道客户端请求服务器,服务器给我们返回的数据通常不只是xml,还可以是json,html,当然json和xml是用的最多的了,下篇文章将会向大家解析原创 2015-12-07 12:47:20 · 18032 阅读 · 0 评论 -
HTML解析,网络爬虫
一、概述 曾几时,我还是一个屌丝,一个在校大学生,高中的时候老师就对我们撒了一个慌,说…。人们称它为一个善意的谎言,我却傻傻信以为正。高三的时候努力拼搏了一段时间,可惜命运总是爱作弄人,高考考到了一个二流的大学,从此我告别了家乡,踏上了大学校门,来到了一个鸟不生蛋但会拉屎的地方。刚来大学的时候,大一浑浑噩噩的度过,大门不错,二门不迈,整体呆在宿舍打游戏,打了大半年的游戏,就那样,大学里最美好的日子原创 2015-12-08 12:58:58 · 19205 阅读 · 0 评论 -
Android Preference初探,另一种布局方式
记得android五大数据存储中有个SharePreferences,其他四种分别是:SQLite数据库ContentProvider(内容提供者)文件存储网络存储这里简单回顾一下SharePreference是的使用:// 1. 得到sharedPreferences,第一个参数指定SharePreference保存的xml文件的文件名,第二个参数是SharedPreferences模式原创 2017-03-17 20:09:08 · 5485 阅读 · 0 评论 -
Android异步更新UI的几种方法
前言:我们知道在android开发中不能在非ui线程的其他线程中更新ui,但是,有的时候我们需要在代码中执行一些诸如访问网络、查询数据库等耗时操作,为了不阻塞ui线程,我们时常会开启一个新的线程(工作线程)来执行这些耗时操作,然后我们可能需要将查询到的数据渲染到ui组件上,那么这个时候我们就需要考虑异步更新ui的问题了。android中有下列几种异步更新ui的解决办法:Activity.runOn原创 2016-04-26 12:37:54 · 12674 阅读 · 3 评论 -
Android绑定Service(含IPC)
前言:四大组件中的service是其中除了activity之外用得最多的可能就是它了,当然,其他两个组件有它们自己的应用场合,这个在每个应用中使用情况可能不同,需要根据应用的需要选择使用相应的组件来完成任务。这篇文章将介绍如何绑定一个服务Service,使得客户端和Service进行通讯。一、绑定Service 要定义一个自己的服务允许客户端绑定,需要继承系统的Service基类,然后必须重写onB原创 2016-03-11 20:58:59 · 2316 阅读 · 0 评论 -
Android获取屏幕宽高
获取屏幕宽高是我们在开发中经常需要的,下面我们看看3中获取屏幕宽高的方法:1. 通过Resources对象获取DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();float widthPixels = displayMetrics.widthPixels; // 屏幕宽度float heightPi原创 2015-11-25 22:27:29 · 924 阅读 · 0 评论 -
Android沉浸式状态栏
在使用沉浸式状态栏时需要注意设置的沉浸颜色为白色还是其他深色的区别1. 状态栏字体图标黑色(深色)// 5.0以上系统状态栏透明if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.clearFlags(WindowManager....原创 2018-12-14 17:00:57 · 341 阅读 · 0 评论