- 博客(523)
- 资源 (59)
- 问答 (1)
- 收藏
- 关注

原创 Android实战--英文词典(API+GSON+Volley)
转载请注明出处,喜欢我的可以关注我!上一节我们介绍了GSON和Volley,用GSON对返回的数据进行了初步解析,这一节我们更进一步,讨论一下如何实现英文词典。首先把JSON数据的样式再看一下: 下面创建bean,这些都和上一节一样: 第一个bean:[java] view plaincopypackage org.lxh.d
2015-05-19 14:03:10
6766
7

原创 Android实战--天气预报(API+JSON解析)
学习安卓有一段时间了,应该提高自己的实战能力,做一些简单的Demo。下面我们介绍一下如何利用网络API实现天气预报功能,主要涉及到如何利用API获得网络数据,网络数据返回一般是JSON格式,这里又涉及到JSON的解析问题,这些都是比较基础的问题,应该予以掌握。首先在http://apistore.baidu.com/?qq-pf-to=pcqq.c2c找到你想要的API,这里我们选择http:
2015-05-16 09:23:07
20189
25
原创 输出所有到叶子节点的路径 回溯写法
List<List<Integer>> results = new ArrayList<>(); public List<List<Integer>> pathSum(TreeNode root, int sum) { List<Integer> list = new ArrayList&...
2020-02-10 18:08:20
427
原创 Java打印树的所有路径
public boolean hasPathSum(TreeNode root, int sum) { List<Integer> list = new ArrayList<>(); dfs(root, list); List<String> strings = new A...
2020-02-10 16:46:57
836
原创 Java 排序字符串
public static void main(String[] args) { // write your code here String test = "jjjkkkffffggg"; List<Character> list = new ArrayList<>(); for (int i =...
2020-01-30 15:42:57
264
原创 Android线性布局重要属性
上一节的实例中用到了两个属性gravity和layout_weight,这两个属性在Android开发中会经常用到,用法也比较复杂,下面我们来讲解一下这两个属性的用法。3.4.1 gravity属性:Android中的gravity属性有两种形式:layout_gravity和gravity,这两种有什么区别呢?从字面意思上就可以大概理解,第一个layout_gravity控制控件在父布局中的位置
2017-09-07 22:13:43
5289
6
原创 Android布局之线性布局
第一节介绍了新建Android项目时默认生成的布局文件,默认的布局文件采用的相对布局RelativeLayout,在这个布局中也默认添加了一个TextView控件。本节讲的这个LinearLayout线性布局和RelativeLayout相对布局类似,同属于布局容器,也可以包裹普通UI控件(TextView、Button等)。线性布局是按照水平或垂直的方式将布局元素(控件或布局)按照顺序依次排列,
2017-09-06 22:06:10
2357
原创 Android 布局属性值
padding和margin属性在开发中十分常用,padding意为“填充”,一般用来在控件内部填充布局,而margin意为“边缘”,一般指的是控件外部距父控件的距离,可以结合下面的图片来理解,如图3.9所示。图3.9 Android 布局示意图图中序号如表3.1所示。表3.1 Android布局示意图含义表3.2.1 Android padding属性用法下面通过一个实例来看一下这些属性的用法,
2017-09-06 22:04:00
1625
原创 Android项目文件结构
大致可以认为,Android APP由两部分组成,布局、属性部分和逻辑代码部分。属性和布局负责Android APP的UI,即用户看到的部分,由XML语言编写,逻辑代码部分则由Java语言编写,负责APP的逻辑控制工作。新建一个Android项目,查看左侧的Android项目文件结构如图3.1所示。图3.1 Android项目文件结构最外层的根目录为app,app目录中有三个子文件夹:manife
2017-09-06 21:59:47
3865
原创 Android Studio 调试
编写代码很多时候都会“差强人意”,很难一次获得想要的结果,出现错误的时候需要查找错误的原因,这种查找的过程可以称为“程序调试”。一般来讲程序员百分之十的时间写代码,百分之九十的时间都在调试,因此要认识到调试的重要性。调试的方式有多种,这里介绍最常用的两种:Logcat调试方式和断点调试方式。2.3.1 Logcat调试Logcat调试方式很简单,在可能出现错误的地方将变量的值打印出来,方便分析总结
2017-09-06 21:57:24
10050
原创 Android Studio 常用快捷键
快捷键又称为“热键”,多个按键的组合可以实现某些快速操作,例如Window中最常用的Ctrl+C和Ctrl+V,熟练使用快捷键可以大大提高开发效率并可以减少某些错误的发生。Android Studio也默认提供了众多快捷键方式供开发者调用,推荐使用Android Studio默认风格的快捷键。2.2.1 Ctrl组合快捷键这里将快捷键进行分类,方便学习和记忆,Ctrl组合常用快捷键,如表2.1所示
2017-09-04 22:23:34
66306
13
原创 Android Studio - 基本配置
正所谓“磨刀不误砍柴工”,Android开发中最重要的利器就是Android Studio。上一章介绍了如何安装Android Studio和如何配置Android模拟器。本章主要讲解Android Studio的常用操作和技巧,熟悉这些常见操作和技巧将有利于提高开发效率,减少开发时的低级错误。2.1.1 改变主题安装成功时,Android Sutdio默认的主题名为IntelliJ,其效果如图2
2017-08-27 16:47:54
7418
原创 万事开头难 - 第一个Android应用
万事开头难,凡事都有套路,勇敢迈出第一步就成功一大半了。本节将带领初学者们迈出属于自己的一小步。本书的开发工具采用Android Studio,因此,首先通过图文讲解如何使用Android Studio新建我们的第一个Android项目。1.3.1 创建一个新项目安装成功Android Studio会默认生成一个Android项目,这里新建一个属于我们自己的项目。Step01 点击File菜单,选
2017-08-27 11:14:32
5648
1
原创 开发利器 - Android Studio的安装
俗话说,欲善其事必先利其器,要想获得快速的开发效率和学习速度,选择一样趁手的的开发工具是首先要做的事情。很长一段时间,开发者都习惯了使用Eclipse并结合ADT插件来开发Android应用,但这一习惯将随着Android Studio的不断强大而必须改变了。自从2013年5月16日,在I/O大会上推出的Android Studio雏形,到现在更新到了最新的2.2.2.0版本,Android Stu
2017-08-27 10:22:34
760
原创 和Android的第一次美丽邂逅
Android是谷歌推出的基于Linux的手机平台,作为开源的移动操作系统,不存在任何阻碍移动产业创新和发展的专利权障碍,因此Android一经面世就获得了空前的发展,在移动操作系统市场份额一度达到80%多,处于绝对的垄断地位。现如今Android已经不局限于手机系统,越来越多的车载、穿戴、电视设备也集成了Android系统。我们相信随着物联网的不断深入和发展,Android系统将会以更多样的形式融
2017-08-27 09:54:14
1242
原创 Android - 蜗牛进度条
友好的界面可以给用户留下深刻印象,为APP加分,今天实现的这个进度条,以蜗牛爬动的方式告诉用户当前进度,体验比较棒,这里分享一下。这里创建一组帧动画作为进度条的标志,如下:xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot=
2017-06-16 22:42:54
1489
7
原创 Anroid自定义View-绘制圆环
自定义View代码如下:public class CircleProgress extends View { private Paint mPaint; private int mWidth; private int mHeight; private static final int RING_WIDTH =80; public CircleProgre
2017-06-11 10:11:48
611
原创 Android自定义View 属性添加
昨天写的自定义View,所有的属性都是写死的,拓展性基本为零。今天讲解自定义View属性的设置,首先在res的values文件夹下创建一个attrs.xml文件。代码如下:xml version="1.0" encoding="utf-8"?> name="ScrollTextView"> name="textSize" format="dimension"> n
2017-06-04 12:46:44
704
原创 Android自定义View实现文本轮播效果
文本轮播可以有效吸引用户眼球,并且适用于一行文本显示不下的场景,一些广告都会采用这种方式。TextView自带轮播属性,除了使用这个属性之外,本文采用了比较有意思的小算法,通过自定义View的方式实现文本轮播效果。自定义View代码如下:package ad.scrolltextview;import android.content.Context;import android.graphics.
2017-06-04 10:51:44
2473
原创 自定义View实现自动数字增长的TextView
用过理财工具的对软件里会自动增长的TextView都不会陌生,这种动效会让你有一种money无限多的赶脚,这种特效可不可以模仿呢?今天通过一个自定义的TextView来模仿一下。首先定义一个接口,制定一下规则:public interface IRaiseNumber { void start(); void setFloat(float fromNum, float toNum);
2017-05-14 17:03:33
3175
1
原创 并行处理提高工作效率
我们都知道,如今的CPU可以如此强大,和其复杂而科学的调度系统是分不开的。CPU不会傻傻的等待一件事情做完才去做另外一件事情,而是把所有的工作细化,轮询执行,这样才可以保证资源利用效率最大化。同样,工作中也经常会遇到A事情暂时做不下去而要暂时挂起的情况,这时我们要傻傻的无限等待吗?若这样效率就大打折扣了,我们可以在此设定一个回调,马上开启另外一个线程开始另外一件B事情的运行,当B事情遇到阻塞又暂时
2017-03-18 19:06:19
4509
原创 Android传感器 - 光强度传感器
Android手机内部添加了光照强度传感器,可以实时监测手机周边环境的亮度,根据周边环境的亮度可以自动调节屏幕的亮度。下面通过一个实例看一下如何监测周边环境的亮度值。主布局文件代码如下: android:layout_width="match_parent" android:layout_height="match_parent"> android:id="@+i
2017-03-18 11:21:13
5497
4
原创 Android-Theme 主题
Android上Style和Theme不同: Theme是针对窗体级别的,改变窗体样式; Style是针对窗体元素级别的,改变指定控件或者Layout的样式。 风格是一个包含一种或者多种格式化属性的集合,你可以将其用为一个单位用在布局XML单个元素当中。比如,你可以定义一种风格来定义文本的字号大小和颜色,然后将其用在View元素的一个特定的实例。主题是一个包含一种或者多种格式化属性的集合,你可以将
2016-09-30 20:01:58
846
原创 Android-自定义输入法的功能按钮
在android发开过程中,有时候需要对EditText的软键盘进行监听。 当点击软键盘回车位置按键的时候,需要实现 完成、前进、下一项、搜索、发送或其他功能,这就需要开发者对软键盘回车的点击事件进行捕捉。 比如在登录界面,需要用户在输入密码之后点击软键盘回车直接登录,不必再去点击屏幕上的登录按钮。我们就可以在密码使用的EditText设置 android:ime
2016-09-30 19:53:34
3399
原创 Android-Style样式表
Android中的Style是一些属性的集合,包括height,padding,font color,background等等,基本上布局文件中的属性,这里都可以找到。Style单独定义在xml文件中,类似与web页面中css的角色,将设计和内容分开,便于修改和重复使用,一方面可以提高代码的复用性,另一方面也能保证UI视图的一致性,同时可以增强代码的可维护性。 下面通过一个实例学习一下Style的
2016-09-30 19:49:27
1050
原创 Android-Snackbar用法及源码分析
Snackbar提供了一个介于Toast和AlertDialog之间轻量级控件,它可以很方便的提供消息的提示和动作反馈。有时我们想这样一种控件,我们想他可以想Toast一样显示完成便可以消失,又想在这个信息提示上进行用户反馈。写Toast没有反馈效果,写Dialog只能点击去dismiss它,Snackbar完全可以达到这样的需求。在谷歌提出 material design 之后,终于推出了 an
2016-09-30 19:43:30
601
原创 Android -Toast源码解析
Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。系统的Toast使用很简单,只需要一行代码就可以搞定,不过样式相对单一,下面就来研究一下花样的Toast。说到Toast,最常用的方法应该就是makeText方法,看一下源码中的makeText方法:public static Toast
2016-09-30 19:40:17
627
原创 ButterKnife依赖注入框架的引入和使用
俗话说:“不会偷懒的程序员不是好的程序员!”。作为一名Android开发,是不是经常厌烦了大量的findViewById以及setOnClickListener代码,而ButterKnife是一个专注于Android系统的View注入框架,让你从此从这些臃肿的代码中解脱出来。首先看一下在Android Studio中引入ButterKnife步骤如下:在项目上右键,选择Open Module Se
2016-09-30 19:30:51
4225
原创 Android - 实现各种形状的ImageView
实现各种形状的ImageView要用到BitmapShader类,这个类的介绍如下: BitmapShader是Shader的子类,可以通过Paint.setShader(Shader shader)进行设置、这里我们只关注BitmapShader,构造方法:mBitmapShader = new BitmapShader(bitmap, TileMode.CLAMP, TileMode.CLAM
2016-09-17 22:51:42
1459
原创 android-Intent电话、短信、联系人跳转
首先看一下布局文件:xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orien
2016-09-17 22:45:03
854
原创 Android - 使用SpannableString设置复合文本
TextView通常用来显示普通文本,但是有时候需要对其中某些文本进行样式、事件方面的设置。Android系统通过SpannableString类来对指定文本进行相关处理,具体有以下功能:1、BackgroundColorSpan 背景色 2、ClickableSpan 文本可点击,有点击事件3、ForegroundColorSpan 文本颜色(前景色)4、MaskFilterSpan 修饰效果,
2016-09-08 23:17:36
2245
原创 Android - 实现各种形状的ImageView
实现各种形状的ImageView要用到BitmapShader类,这个类的介绍如下:BitmapShader是Shader的子类,可以通过Paint.setShader(Shader shader)进行设置、这里我们只关注BitmapShader,构造方法:mBitmapShader = new BitmapShader(bitmap, TileMode.CLAMP, TileMode.CLAMP
2016-09-08 23:13:11
5804
原创 Android-判断某个网络是否在网络列表中
此功能主要用的知识点有下:WifiManager类,获取对象的方法如下:mWifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);通过调用这个对象的getScanResults方法,可以获取当前扫描到的网络列表List,即:List。CountDownTimer类(这个类在倒计时的Button中也曾用到),此类
2016-08-21 21:01:05
1230
原创 Android 错误之broadcast receiver not register
出现这个错误的问题有可能是在某些地方已经调用了unregisterReceiver反注册过了,又一次调用unregisterReceiver就会出现这个错误, 有两个手段: 一、try catch包裹,这种虽然可以避免crash,但不是好的处理方式; 二、在反注册的地方将实现的BroadcastReceiver(广播对象)置null,然后每一次反注册之前先判
2016-08-21 20:54:11
2634
原创 Android-满屏幕拖动的控件
今天做个有意思的效果吧,控件的拖拽,先看一下模拟器运行:也就是,用户可以随心所欲的拖动控件,布局文件很简单就是一个Button控件:xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/root" android:la
2016-08-19 23:09:17
6119
6
原创 Android错误之 java.lang.IllegalStateException: System services not available to Activities before onC
全错误日志如下:08-14 14:28:04.911 8587-8587/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.administrator.followview, PID: 8587
2016-08-14 23:26:36
5066
原创 android错误之 Caused by: android.content.res.Resources$NotFoundException: File res/anim/snailanim.xml f
错误日志信息如下:解决办法:1、clean工程clean无效的情况下,看一下导入的R包是不是错误:真是导入了错误的包,将其删除,然后clean后,再次导入:
2016-08-14 23:25:38
1467
原创 Android错误之(Android 6.0)Unable to add window android.view.ViewRootImpl$W@d4521e8 -- permission denied
错误全log信息如下:08-14 12:54:17.073 6411-6411/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.administrator.myapplication, PID: 6411
2016-08-14 21:48:29
30562
9
原创 android错误之failed to find Build Tools revision 23.0.0
导入项目或library项目编译时可能会出现如下错误提示: 这时可以查看一下导入项目或library的gradle版本: 版本是23.0.0,看一下本地的gradle版本是:23.0.3。所以我们只要修改引入项目的gradle版本为23.0.3。点击Try Again再次编译就好了。 最后,宣传一下我的书籍:(亚马逊和百度阅读有售) 《a
2016-08-13 21:39:43
7918
原创 android错误之Suggestion: use tools:overrideLibrary="com.xys.libzxing" to force usage
导入Zxing包时编译时会出现如此提示: 解决办法: AndroidManifest.xml添加: xmlns:tools=http://schemas.android.com/tools 添加后的代码如下:<manifest xmlns:android=
2016-08-13 20:56:41
3873
android上拉加载,下拉刷新listview
2015-09-05
ripple-effect android eclipse 为控件增加涟漪效果
2015-08-23
android-短信验证码截取自动填入源码
2015-08-16
android 截取短信验证码自动输入Demo
2015-08-16
Android二维码扫描识别-二维码生成实例demo
2015-08-14
Android源码--基于Baas上拉加载、下拉刷新
2015-07-23
Android 百战经典-Android补间动画(Tween)大观园
2016-03-20
android 仿iOS弹出框效果demo
2015-10-29
android 邮箱验证EditText DEMO源码
2015-10-29
Android引导页Demo(第一次进入应用时加载)
2015-10-10
Android 圆形ImageView 源码Demo
2015-09-21
ListView 子控件单击事件混乱
2015-06-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人