自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 JAVA round 和 floor的区别

在java基础中,经常会有一些比较冷门的知识点,但是往往这些知识点都是吧很重要的。现在来记录一下其中的一点。Math.round() 和 Math.floor的区别我们来看一下api文档上面的官方定义。因此这边我们可以简单的理解为:floor是取下界,而round是对浮点数进行四舍五入。下面我们用代码来证实一下。public class TestStatic { static double

2016-04-09 15:52:14 1277

原创 令人困惑的值传递和引用传递

对于学习java的同学来说,有一个比较容易让人困惑的问题,就是java中的参数的传递,可能大家都听到过各种的说法,比如有一种比较经典的说法就是基本数据类型是值传递的,引用数据类型是引用传递的。听起来好像很有道理,但是大家要牢记一点,就是java中只有值传递。下面通过几个简单的代码例子来说明。 首先是简单的基本数据类型。public class Main { public static v

2016-03-22 17:52:26 395

原创 Java内存区域

最近在看深入Java虚拟机,记下一些笔记等遗忘的时候来翻一翻。上图所示就是java程序运行时的几个数据区域。1 程序计数器: 线程私有,比较小的内存区域,是当前线程执行字节码行数的指示器。通过改变的计数器的值来选取下一条需要执行的字节码指令。当执行的是java方法的时候,计数器记录的是正在执行的字节码指令地址,若是执行的是Native方法,那么计数器的值为空。2 Java虚拟机栈 也是线程私有的

2016-03-22 10:35:13 376

原创 JDK JRE JVM的区别

从上面的图片我们可以首先清楚,JDK>JRE>JVM 就是JDK中包含JRE,JRE中又包含JVM JDK Java Development Kit java开发工具包 JRE java Runtime Environment java运行时环境 JVM java Virtual Machine java虚拟机JVM与JRE、JDK关系?   JVM:Java Virtual Machin

2016-03-20 10:47:13 352

原创 hash冲突的解决方法以及hashMap的底层实现

大家平时都用过hashMap,但是可能大家对hashMap的底层实现不太了解,这几天也稍微了解下,记录下来,以免遗忘。如上图,我们需要了解一下hash表(散列), 首先散列的目的是要使用一个对象来查找另一个对象。散列就类似于 家里挂的珠帘,一个个的珠子构成一串,每一串并行而挂。如果把 每一个珠子看成是Key-value对,串看成是bucket,每一串悬挂的地方定义hash地址 那么这就是一个Has

2016-03-19 11:25:58 9753

原创 Serializable 和 Parcelable两种方式传递对象

Serializable方式相对而言比较简单些。只是简单的实现Serialiazable接口,然后从中根据字段读取就行了。public class Person implements Serializable { private String name; private int age; public String getName() { return name

2016-03-09 22:14:25 461

原创 几种常见操作导致的Activity生命流程的变化

1 第一种:比如点击按钮弹出一个Toast,或者对话框,这个时候是activity生命周期是不会变化的。 运行结果如下2 第二种:跳转到另外一个透明的activity,这个时候ActivityA 会调用onPause();ActivityB会调用onCreate(),onStart(),onResume()方法。 运行结果如下: 3 第三种:当切换横竖屏的时候,会重写创建走一遍生命流程,并且

2016-03-09 19:47:55 471

原创 Java中数据存储在哪?以及equals和==的区别

最近在看java编程思想,疯狂java基础,下面写下自己看书之后的一些细小的知识点的总结。java中,经常会使用到一些变量,不管是基本数据类型变量还是引用变量,但是我们又会有问题,那么这些变量到底存储在哪里呢?对于基本数据类型:都是存储在堆栈中。若你创建一个基本数据类型,int b =3;首先jvm会先栈中寻找是否存在一个数据为3的变量,若有的话,则将b指向这个地址,若没有的话,则新建一个变量,分

2016-03-08 12:25:54 537

原创 android 布局优化

主要用到三个标签。1 include 用于重复使用某个布局,减少代码的重复。2 merge 用于减少布局的嵌套的层数。当父布局与子布局的根节点使用的是相同的布局,并且用include来包括进父布局中。那么这个时候可以使用merge来替代掉原来的自布局的根节点。 举个栗子:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:andro

2016-03-06 16:46:30 271

原创 使用SharedPreferences实现记住密码功能

在我们平时用到的各种软件上,都有一个基本的登陆的功能。其中衍生出来的如记住密码这种功能,现在就来实现一下这个功能。这里我们需要用到一个主要的类,SharedPreferences,这个类是用来存储比较简单的键值对(适合用于保存软件配置参数)。就如用户名或者密码这种。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data//shared_prefs

2016-02-25 14:31:01 536

原创 ArrayAdapter,SimpleAdapter,BaseAdapter

自从放寒假,以及过年期间,一直没有好好的敲代码,也没有好好的看书,导致现在已经对原来学的东西忘记的太严重了,深深地感觉到脑子不够用了,决定重温下原来的基础。先总结下几个简单的适配器,ArrayAdapter,SimpleAdapter,BaseAdapter的用法。1 ArrayAdapter数组适配器,这是最简单的适配器,基本上是用于只显示文本。public class ArrayListD

2016-02-23 13:24:36 440

原创 Android的生命周期和启动模式以及使用场景

Android官网上有一张Activity的生命周期图。从图中可以看到这边一共有七个状态。 1 onCreate():Activity正在被创建。 2 onRestart():Activity正在重新启动。(当打开另一个Activity或者返回到桌面的时候,又回到这个界面时候会调用) 3 onStart():Activity正在启动。这个时候活动已经显示,但是还没有绘制,肉眼看不到。可以理解为

2016-01-26 22:35:07 1401

原创 Java 环境变量配置

1 右键我的电脑,选择属性,进入高级系统设置,选择环境变量,新建JAVA_HOME变量,然后输入你的jdk的安装路径2 然后再path变量前面输入%JAVA_HOME%\bin;或者%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意分号的中英文)3 最后,新建一个CLASSPATH变量,输入.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\l

2015-12-26 23:23:42 343

原创 DialogFragment 去掉左右两边留白

当我们使用dialogFragment的时候,有时候我们不希望周围会有留白,那接下来这个方法就能帮上你的忙了。 @Override public void onResume() { ViewGroup.LayoutParams params = getDialog().getWindow().getAttributes(); params.width =

2015-12-24 20:28:37 2974 1

原创 DialogFragment实现自定义进度条

你是否已经厌倦了系统自带的那个环形进度条,看着别人那种花式进度条羡慕不已呢?不要着急,本文介绍的就是如何自定义进度条。先上效果图首先我们需要准备一张你需要作为进度条的图片,这里我们随便找了一张。然后我们可以开始定制的过程了。先写一个布局文件用来显示我们的进度条。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/an

2015-12-23 11:19:53 2573

原创 Android Activity Intent隐式启动

相比于activity显式启动,以直接指明需要启动的组件的类名来启动Activity,隐式启动则显得比较“麻烦”一些,但是却拥有更强大的功能。  Intent 中的几个比较重要的属性。 Action:Action属性的值为一个字符串,它代表了系统中已经定义了一系列常用的动作。通过setAction()方法或在清单文件AndroidManifest.xml中设置。默认为:DEFAULT。

2015-12-22 20:40:56 1351

原创 Material Design CoordinatorLayout

本文的主要介绍的是用Coordinator实习的两种基本的效果如图。第一种 第二种话不多说,让我们进入正题!先简单的介绍一下CoordinatorLayout的作用主要是作为顶布局协调子布局。先来实现第一个效果<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout xmlns

2015-12-21 23:17:21 327

原创 Glide开源库结合RecyclerView实现加载图片

问题?如何在RecyclerView上面动态图片,同时这个图片的地址存储在Json字符串中的呢?准备工作:我们需要在用到两个jar包 其中glide,是加载图片的框架,gson则是用来解析json数据和将javabean转换为json字符串的jar包。 开始撸代码 1 在主界面定义一个recyclerview的布局文件activity_main.xml<?xm

2015-12-02 20:24:48 4536

原创 ViewPager 和 TabLayout实现Fragment分页

实现的效果就是如下图 首先我们需要定义一个显示的xml文件,定义为activity_fragment.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="ma

2015-11-19 12:04:11 633

原创 关于应用程序的开机启动界面

平时我们在使用app的时候,会发现,大多数软件都有开机启动的效果,比较常见的有两种第一种: 就是界面从透明慢慢显示,这也是比较简单的一种。第二种: 就是界面上左右滑动的效果,到达最后一种的时候点击进入主界面,这是一种相对复杂的效果。下面,从第一种效果讲起创建activity_start.xml<?xml version="1.0" encoding="utf-8"?><LinearLayou

2015-11-18 22:44:59 418

原创 采用AsyncTask异步加载网络图片

当我们学习一样东西的时候,我们应该了解这样东西是用来做什么的,我们知道,在处理网络图片的时候我们经常需要新建一个线程来执行,需要new Thread(),并且结合Handler来进行处理,但是有些人可能觉得这样比较烦人,因此,这里有一个可替换的方法,采用AsyncTask这个类来执行。public class MMAsyncTask extends AsyncTask<Void,Void,Void

2015-11-17 09:38:14 324

原创 关于LinearLayout中的weight的属性

有时候我们在适配屏幕的时候可能需要用到weight这个属性。 The weight value is a number that specifies the amount of remaining space each view should consume, relative to the amount consumed by sibling views.这段话是android开发文档

2015-11-04 20:15:09 443

原创 android 通知的使用(Notification)

当我们平时使用手机的时候,经常会收到一些通知,比如短信,电话,我们通过从屏幕上下拉就可以看到。如下图那到底这个是怎么实现的呢?因为随着AndroidSDK的版本的升级,有些方法会逐渐的被一些好的方法取代,这里就出现了这种情况。低于API Level 11版本(即Android 2.3.3之前的系统)中,setLatestEventInfo()函数是唯一的实现方法。不过现在我们的使用的版本基本都会高于

2015-10-20 16:47:18 371

原创 侧滑菜单的功能实现

当我们在做一些项目的时候,经常会需要用到侧滑菜单的功能,当但是对于一些刚做android开发的同学来说,有时候会碰到些困难,我写下自己的一些心得,以助有困难的同学以参考。1 首先我们需要下载一个jar包。 2 然后放到我们项目的libs文件夹中,然后 add as library,这样就把这个jar包添加到我们的项目中了,我们就可以使用了3 然后再我们需要使用侧滑功能的布局文件的根

2015-10-13 20:22:21 447 1

原创 android studio下 SHA1的获取

有时候我们需要在自己的项目中需要集成地图功能,这个时候我们需要去申请地图的sdk,但是在申请过程中,我们会遇到这样的一个问题,需要我们提供“安全码 SHA1”用过eclipse开发的同学们都知道,用eclipse获取SHA1是非常简单的,这里我就不再介绍,然而当我们使用androidstudio的时候,这个时候就有一点点复杂了,这里我把自己的经验介绍一下1 首先我们需要在打开dos命令行 就是我们平

2015-10-13 16:19:05 485

原创 关于LoonAndroid框架环境的搭建

有时候我们在开发的时候,为了节省代码的长度,或者简洁,我们常常会使用一些开发框架来节省开发的时间,这一篇就是来讲解如何搭建LoonAndroid的环境来使用。首先我们需要一个com.android.pc这个包,我们可以从https://github.com/gdpancheng/LoonAndroid这个网站上下载下来。然后复制粘贴到自己的项目中去。,形成的目录结构就是这样。如下图:其中下面的

2015-10-07 10:50:18 1180

原创 关于LayoutInflater的一些总结

写过android的同学应该会有所感觉,findViewById的作用跟LayoutInfalter有些类似,但是主要区别是,findViewById是查找到xml文件中的具体的view,(Button,TextView等等)而LayoutInflater则是查找到layout中的布局文件,并且实例化它.关于LayoutInflater的实例化主要有三种方法 1 LayoutInflater

2015-10-06 15:24:59 516

原创 HttpGet请求

在我们平时做的一些项目中,经常会用到连接网络的功能。这里以HttpGet为例子做一个简单的访问百度页面得到其中的代码的例子。1 首先,需要得到自己要访问的服务器地址 String uriAPI = "http://www.baidu.com";2 然后创建我们的请求 HttpGet httpRequest = new HttpGet(uriAPI);3 执行我们的请求之后得到返回的对象Ht

2015-10-06 15:07:39 742 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除