- 博客(70)
- 资源 (1)
- 收藏
- 关注
原创 AIDL通信的简单实现
AIDL通信的简单实现方法一:1.服务端1)在src/main目录下新建一个aidl文件夹,2)然后在aidl目录下新建一个同java目录下包名相同的包,3)在其中创建“.java”文件和每个“.java”对应的“.aidl”文件。每个“.aidl”文件只需按如下形式写即可:// Book.aidlpackage a.aidltest.aidltestservice;parcelable Book...
2018-06-01 00:35:32 525
原创 AndroidStudio 导入项目 出现“gradle project sync failed:”的错误;
报错:出现“gradle project sync failed:”的错误;原因:出现此问题的原因是gradle更新失败,在...\.gradle\wrapper\dists 目录中可看到需要更新的版本解决方法1)手动下载相应版本的压缩包,然后把包放到对应的文件夹中,把文件夹中的其他文件都删掉,2)再重新启动android studio;...
2018-05-30 21:34:33 2109
原创 AndroidStudio3.0中出现Annotation processors must be explicitly declared now.的错误
报错在AndroidStudio3.0中导入AndroidStudio3.0之前的工程出现 Annotation processors must be explicitly declared now.的错误原因解决方法在build.gradle中进行如下配置android { ... defaultConfig { //添加以下配置 ...
2018-05-30 21:27:43 350
原创 error: style attribute ‘@android:attr/windowEnterAnimation’ not found.
报错: error: style attribute ‘@android:attr/windowEnterAnimation’ not found.提示找不到@android:attr/windowEnterAnimation原因:因为已经不支持@开头使用android自带的属性,需要把@符号删掉。解决方法:全局搜索@android:attr/windowEnterAnimation,找到相应的地...
2018-05-30 21:16:50 355
原创 微信支付客户端实现流程
前期准备: 1)注册微信开放平台账号 2)认证开发者资质 3)创建APP并提交审核1)2)3)三个流程约7个工作日; 4)提交资料申请微信支付5)启动设计和开发4)5)约3~7个工作日;6)开户成功,登录商户平台进行验证7)在线签署协议8)成功接入微信支付
2017-10-17 14:03:35 943
原创 基于高德开放平台SDK的定位Demo
第1步: 在高德开放平台添加应用,添加新Key,获取Key值;第2步: 下载高德地图SDK、高德定位SDK,将其中的jar包添加到Android Studio工程下的libs目录下,并添加与当前应用的依赖关系;第3步: 在AndroidManifest.xml文件中添加地图和定位使用的相关权限;地图包、搜索包需要的
2017-10-17 13:42:54 2150
原创 正常退出APP的一种方法
第1步:实现一个APP退出工具类:public class ExitApplication extends Application { private List activityList = new LinkedList(); private static ExitApplication instance; private ExitApplication()
2017-10-16 13:53:42 1138
原创 Android应用改变状态栏颜色和APP风格保持一致
第1步:在项目moudle下的gradle文件里添加以下依赖compile 'com.githang:status-bar-compat:0.3'compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'第2步:实现一个改变状态栏颜色的工具类public class ChangeStatu
2017-10-16 13:45:52 1183
转载 BAT Android工程师面试流程解析+还原最真实最完整的一线公司面试题
BAT Android工程师面试流程解析+还原最真实最完整的一线公司面试题 求职和我们每个人息息相关,而求职也有门道,好的发挥和技巧或许能让我们以压倒性优势在面试中胜出,可能我们技不如人,但是我们的综合能力如果优秀的话,企业也愿意招这样的人,因此我将自己亲身经历的BAT和其他知名互联网的面试经验分享给大家,让有技术的人展现获得展现自我的平台,前几天在网上一搜,一系列的百
2017-09-19 11:25:00 539
转载 Android项目重构-实现篇
前两篇文章Android项目重构之路:架构篇和Android项目重构之路:界面篇已经讲了我的项目开始搭建时的架构设计和界面设计,这篇就讲讲具体怎么实现的,以实现最小化可用产品(MVP)的目标,用最简单的方式来搭建架构和实现代码。IDE采用Android Studio,Demo实现的功能为用户注册、登录和展示一个券列表,数据采用我们现有项目的测试数据,接口也是我们项目中的测试接口。项目搭
2017-09-15 13:28:37 857
转载 Android项目重构-界面篇
在前一篇文章《Android项目重构之路:架构篇》中已经简单说明了项目的架构,将项目分为了四个层级:模型层、接口层、核心层、界面层。其中,最上层的界面,是变化最频繁的一个层面,也是最复杂最容易出问题的一个层面,如果规划不好,很容易做着做着,又乱成一团了。要规划好界面层,至少应该遵循几条基本的原则:保持规范性:定义好开发规范,包括书写规范、命名规范、注释规范等,并按照规范严格执行;保持单一性
2017-09-15 13:24:04 532
转载 Android项目重构-架构篇
去年10月底换到了新公司,做移动研发组的负责人,刚开始接手android项目时,发现该项目真的是一团糟。首先是其架构,是按功能模块进行划分的,本来按模块划分也挺好的,可是,他却分得太细,总共分为了17个模块,而好几个模块也就只有两三个类而已。但应用本身其实比较简单,要按功能模块来分的话,最多五个模块就够了。另外,有好多模块划分也很模糊,也有很多类按其功能其实可以属于多个模块的,也有些类定义不明确,
2017-09-15 13:19:34 666
转载 ListView的数据更新问题
我们前面已经学习了ListView的一些基本用法咧,但是细心的你可能发现了,我们的数据一开始定义好的,都是静态的,但是实际开发中,我们的数据往往都是动态变化的,比如我增删该了某一列,那么列表显示的数据也应该进行同步的更新,那么本节我们就来探讨下ListView数据更新的问题,包括全部更新,以及更新其中的一项,那么开始本节内容!~1.先写个正常的demo先好的,先写个正常的Dem
2017-09-13 17:38:26 341
原创 使用ListView无数据时,使用ListView的setEmptyView(View emptyView)方法设置空白页面
ListView无数据时,使用ListView的setEmptyView(View emptyView)方法设置空白页面的简单实现
2017-09-13 15:34:18 494
转载 ListView之checkbox错位问题解决
作为ListView经典问题之一,如果你尝试过自定义ListView的item,在上面带有一个checkbox的话,那么当你的item数超过了一页的话,就会出现这个问题,下面我们来分析下出现这种问题的原因,以及如何来解决这个问题!1.问题发生的原因:这是网上找来的一幅关于ListView getView方法调用机制的一个图上图中有一个Recycler的东东,平时我们List
2017-09-13 14:07:45 538
转载 ListView的焦点问题
如果你往ListView的Item中添加了Button,CheckBox,EditText等控件的话,你可能需要考虑到一个问题:ListView的一个焦点问题!本节我们就来学习下解决这个问题的几个方法!我们可以写个简答的listView,上面有一个Button,CheckBox,EditText,但是当我们点击发现,ListView的item点击不了,触发不了onItemClick的方法,也触
2017-09-13 11:47:58 507
转载 BaseAdapter优化
上一节中我们学习了如何来使用一个ListView以及自定义一个简单的BaseAdapter,我们从代码中可以看出比较重要的两个方法:getCount()和getView(),界面上有多少列就会调用多少次getView,这个时候可能看出一些端倪,每次都是新inflate一个View,都要进行这个XML的解析,这样会很浪费资源,当然,几十列或者几百列的列表并不能体现什么问题,但假如更多或者布局更加复杂
2017-09-13 10:43:22 280
转载 ListView简单实用-部分常用属性设置
3.列表从底部开始显示:stackFromBottom如果你想让列表显示你列表的最下面的话,那么你可以使用这个属性,将stackFromBottom属性设置为true即可,设置后的效果图如下:4.设置点击颜色cacheColorHint如果你为ListView设置了一个图片作为Background的话,当你拖动或者点击listView空白位置会发现item都变成黑色
2017-09-12 18:59:24 297
转载 ListView简单实用-表头表尾分割线的设置
listview作为一个列表控件,他和普通的列表一样,可以自己设置表头与表尾:以及分割线,可供我们设置的属性如下:footerDividersEnabled:是否在footerView(表尾)前绘制一个分隔条,默认为trueheaderDividersEnabled:是否在headerView(表头)前绘制一个分隔条,默认为truedivider:设置分隔条,可以用颜色分割,也可以用dra
2017-09-12 18:42:36 1431
转载 ListView简单实用-自定义BaseAdapter,然后绑定ListView的最简单例子
本节我们来继续学习没有讲完的UI控件部分,回顾上一节,我们介绍了Adapter适配器的概念,然后学习了三个最简单的适配器的使用:ArrayAdapter,SimpleAdapter和SimpleCursorAdapter,而本节给大家讲解的是第一个需搭配Adapter使用的UI控件:ListView,不过在版本中被RecyclerView这个新控件替换掉了!列表作为最常用的控件之一,还是有
2017-09-12 18:18:34 627
转载 Adapter基础讲解-SimpleCursorAdapter使用示例
虽然这东西过时了,不过对于不怎么会SQLite的初学者来说,用起来还是蛮方便的!记得前面我们学ContentProivder写过的读取联系人的例子么?之前是通过打印Log的方式显示出来,现在我们通过这个SimpleCursorAdapter把它显示到ListView上!实现效果图:代码实现:先写下listView每个item的布局:list_item.xml:xml ver
2017-09-12 16:41:25 507
原创 Android手机获取权限问题
今天在这里对Android手机权限问题给出了一个小示例,如果读者看了以后觉得内容存在什么问题,请提出您宝贵的建议和意见。以下就是Android获取手机权限的方法,这里使用的例子是使用的”android.permission.READ_CONTACTS“权限。
2017-09-12 15:42:20 1126
转载 Adapter基础讲解-SimpleAdapter使用示例:
SimpleAdapter:简单的Adapter,看似简单,功能强大,下面我们来写个稍微复杂一点的列表布局吧!运行效果图:代码实现:先来编写一个列表项目每一项的布局:list_item.xmlxml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.android.com/apk/res/andr
2017-09-12 14:02:38 476
转载 Adapter基础讲解-ArrayAdapter使用示例
1)ArrayAdapter使用示例:运行效果图:代码实现:public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstance
2017-09-12 11:53:28 1081
转载 Adapter基础讲解-MVC模式的简单理解和Adapter概念解析
从本节开始我们要讲的UI控件都是跟Adapter(适配器)打交道的,了解并学会使用这个Adapter很重要,Adapter是用来帮助填充数据的中间桥梁,简单点说就是:将各种数据以合适的形式显示到view上,提供给用户看!1.MVC模式的简单理解在开始学习Adapter之前我们要来了解下这个MVC模式概念:举个例子:大型的商业程序通常由多人一同开发完成,比如有人负责操作接口的规划
2017-09-12 11:51:00 731
转载 Date & Time组件(下)-CalendarView(日历视图)
好的,一样是看看样子先:嗯,好像变化不大,接下来我们简单的看下文档中给我们提供的属性:android:firstDayOfWeek:设置一个星期的第一天android:maxDate :最大的日期显示在这个日历视图mm / dd / yyyy格式android:minDate:最小的日期显示在这个日历视图mm / dd / yyyy格式android:weekDayTextAp
2017-09-12 10:58:44 503
转载 Date & Time组件(下)-TimePicker(时间选择器)
先来看看5.0的TimePicker长什么样:样子还是蛮标致的哈,我们发现官方给我们提供的属性只有一个:android:timePickerMode:组件外观,同样可选值为:spinner和clock(默认)前者是旧版本的TimePicker~而他对应的监听事件是:TimePicker.OnTimeChangedListener下面来个代码示例:public class Mai
2017-09-12 10:49:45 426
转载 Date & Time组件(下)-DatePicker(日期选择器)
本节我们来继续学习Android系统给我们提供的几个原生的Date & Time组件,他们分别是:DatePicker(日期选择器),TimePicker(时间选择器),CalendarView(日期视图),好吧,其实一开始让我扣这几个玩意我是拒绝的,因为在我的印象里,他们是这样的:简直把我丑哭了,有木有,终于知道为什么那么多人喜欢自定义这种类型的控件了!但是毕竟提纲上写了,自己写的提纲,
2017-09-12 10:36:11 569
转载 Vibrator(振动器)
本节我们介绍的是Vibrator(振动器),是手机自带的振动器,别去百度直接搜针振动器,因为你的搜索结果可能是如图所示的神秘的道具,或者其他神秘道具:嗯,说回本节介绍的Vibrator,其实就是Android给我们提供的用于机身震动的一个服务!比如前面我们的Notification中可以设置震动,当收到推送消息的时候我们可以设置震动提醒,游戏必备,比如"打飞机"的游戏,当你的飞机给人打爆的时候
2017-09-11 18:33:19 795
转载 Chronometer(计时器)
如题,就是一个简单的计时器,我们直接上使用示例吧:使用示例:实现代码:布局代码: xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
2017-09-11 17:45:16 257
转载 ScrollView(滚动条)-
本节带来的是Android基本UI控件中的第十个:ScrollView(滚动条),或者我们应该叫他竖直滚动条,对应的另外一个水平方向上的滚动条:HorizontalScrollView,先来一发官方文档的链接:ScrollView,我们可以看到类的结构如下:嘿嘿,原来是一个FrameLayout的容器,不过在他的基础上添加了滚动,允许显示的比实际多的内容!另外,只能够往里面放置一个子元
2017-09-11 16:26:20 372
转载 RatingBar(星级评分条)-定制环节:
嘿嘿,我们很多时候不会用星星作为评分标准的,我们来改改呗~把星星改成其他的,比如笑脸,两个素材:接下来和前面的SeekBar一样编写一个layer-list的文件:ratingbar_full.xml:xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.android.com/apk/res
2017-09-11 15:39:42 275
转载 RatingBar(星级评分条)-RatingBar基本使用:
上一节的SeekBar是不是很轻松咧,本节我们学的这个RatingBar(星级评分条)也非常简单,相信在某宝,买过东西的对这个应该不陌生,收到卖家的包裹,里面很多时候会有个小纸片,五星好评返还多少元这样,而评分的时候就可以用到我们这个星级评分条了~先来瞅瞅官方文档官方文档:RatingBar我们可以看到,这玩意和SeekBar的类结构是一样的,也是ProgressBar的子类:也就是说他同
2017-09-11 15:26:04 785
转载 SeekBar(拖动条)-简单SeekBar定制
本来还想着自定义下SeekBar的,后来想想,还是算了,涉及到自定义View的一些东西,可能初学者并不了解,看起来也有点难度,关于自定义View的还是放到进阶那里吧,所以这里就只是简单的定制下SeekBar!定制的内容包括滑块,以及轨道!代码实例:运行效果图:代码实现:1.滑块状态Drawable:sb_thumb.xmlxml version="1.0" encoding
2017-09-11 15:07:23 678
转载 SeekBar(拖动条)-SeekBar基本用法
本节我们继续来学习Android的基本UI控件中的拖动条——SeekBar,相信大家对他并不陌生,最常见的地方就是音乐播放器或者视频播放器了,音量控制或者播放进度控制,都用到了这个SeekBar,我们先来看看SeekBar的类结构,来到官方文档:SeekBar嘿嘿,这玩意是ProgressBar的子类耶,也就是ProgressBar的属性都可以用咯!而且他还有一个自己的属性就是:andro
2017-09-11 14:50:24 1078
转载 ProgressBar(进度条)-自定义圆形进度条
相信你看完2会吐槽,卧槽,这么坑爹,拿个动画来坑人,哈哈,实际开发中都这样,当然上述这种情况只适用于不用显示进度的场合,如果要显示进度的场合就没用处了,好吧,接下来看下网上一个简单的自定义圆形进度条!代码还是比较简单,容易理解,又兴趣可以看看,或者进行相关扩展~运行效果图:实现代码:自定义View类:/** * Created by Jay on 2015/8/5 000
2017-09-11 14:22:20 776
转载 ProgressBar(进度条)-使用动画来替代圆形进度条
第一个方案是,使用一套连续图片,形成一个帧动画,当需要进度图的时候,让动画可见,不需要的时候让动画不可见即可!而这个动画,一般是使用AnimationDrawable来实现的!好的,我们来定义一个AnimationDrawable文件:PS:用到的图片素材:进度条图片素材打包.zip运行效果图:实现步骤:在res目录下新建一个:anim文件件,然后创建amin_pgbar.xml的
2017-09-11 14:21:03 1247
转载 ProgressBar(进度条)-常用属性讲解与基础实例
本节给大家带来的是Android基本UI控件中的ProgressBar(进度条),ProgressBar的应用场景很多,比如用户登录时,后台在发请求,以及等待服务器返回信息,这个时候会用到进度条;或者当在进行一些比较耗时的操作,需要等待一段较长的时间,这个时候如果没有提示,用户可能会以为程序Carsh或者手机死机了,这样会大大降低用户体验,所以在需要进行耗时操作的地方,添加上进度条,让用户知道当前
2017-09-11 14:19:50 5793
转载 res下的anim和animator文件夹
anim文件夹下存放tween animation和frame animation;xml文件里只有scale、rotate、translate、alpha、set五个标签;在代码中使用AnimationUtils.loadAnimation()方法加载;使用mView.setAnimation(mAnimation)为mView加载动画;使用mView.startAnimation()开启动画;
2017-09-11 13:28:20 581
转载 开关按钮ToggleButton和开关Switch
本节给大家介绍的Android基本UI控件是:开关按钮ToggleButton和开关Switch,可能大家对着两个组件并不熟悉,突然想起笔者的第一间外包公司,是否在wifi下联网的开关,竟然用的TextView,然后叫美工且两个切换前后的图,然后代码中进行设置,当然点击TextView的时候判断状态,然后设置对应的背景...好吧,也是醉了,好吧...本节讲解的两个其实都是开关组件,只是后者需要
2017-09-11 11:56:45 400
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人