- 博客(345)
- 资源 (12)
- 问答 (1)
- 收藏
- 关注
转载 Android——软引用引用
Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。这里重点介绍一下软引用和弱引用。如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的
2016-10-21 10:19:22 247
转载 Android——点击水纹效果
package com.whr.myapplication;import android.annotation.TargetApi;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;impor
2016-10-19 10:13:19 340
转载 Android——volley源码分析
还是按照前边的顺序分析吧,使用Volley的第一步首先是通过Volley.newRequestQueue(context)得到RequestQueue队列,那么先看下toolbox下的Volley.java中的这个方法吧。/** * Creates a default instance of the worker pool and calls {@link RequestQueue#star
2016-10-17 09:05:20 206
转载 Android——线程通信 HandlerThread
Android是基于Java的,所以也分主线程,子线程! 主线程:实现业务逻辑、UI绘制更新、各子线程串连,类似于将军; 子线程:完成耗时(联网取数据、SD卡数据加载、后台长时间运行)操作,类似于小兵; 一、子线程向主线程发消息(Thread+handler): 1、主线程中定义Handler: Java代码 Handler mHandler =
2016-10-16 13:08:56 224
转载 java scanner 输入acm
一、Java之ACM注意点1. 类名称必须采用public class Main方式命名2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非常之垃圾3. 有些OJ上的题目会直接将OI上的题目拷贝过来,所以即便是题目中有输入和输出文件,可能也不需要,因为在OJ系统中一般是采用标准输入输出,不需要文件4. 在有多行数据输入的情况下...
2016-10-15 15:15:05 1392
转载 Android——view绘制原理
View的绘制原理1.前言View的绘制和View的事件分发是View的两个最为重要的知识点。 在上一篇中已经完整的分析过了View的事件分发机制,这一篇则是分析View的绘制原理。View的绘制原理是自定义View的基础知识,有了这个基础知识就可以写出五花八门的漂亮的自定义view了。2.View的绘制流程一个view要显示在界面上,需要经历一个view树的遍
2016-10-10 14:36:44 442
转载 Android—— View事件分发机制的源码分析
1.前言记得以前在看stay的课程时他说过,如果你想学习一个新事物只需要三个W:Why、What、How,也就是:为什么?是什么?怎么做?当你搞懂这三个W之后,你对新事物必定会有一个透彻的了解。然而对大多数Student来说他们往往最有兴趣的是“How”也是他们最先接触的一个W,其次则是“What”,而“Why”往往会被选择性地忽略,这也是很多时候我们为什么无法将现有知识水平提升一个层次的
2016-10-10 14:23:42 348
原创 Android——屏幕匹配
一、支持各种屏幕尺寸1、 使用wrap_content、math_parent、weight2、尽量使用相对布局、禁用绝对布局3、使用最小宽度限定符根据情况加载不同xml 例如:res/layout/main.xml res/layout-large/main.xml二、支持各种屏幕密度1、把设备的的手机宽度像素平均分为320 高度分480份,以320*480为基
2016-10-09 17:10:16 361
转载 Android——activity四种启动模式
launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。Activity一共有以下四种lau
2016-10-09 11:30:45 252
原创 Android——Activity、Service、Broadcast,超时时间报ANR
Activity----->5秒Broadcast----->10秒Service----->20秒会报ANR,都是在主线程中运行的
2016-10-09 11:08:32 9569
转载 Android——广播注册两种方式
两种注册类型的区别是: 1)第一种不是常驻型广播,也就是说广播跟随activity的生命周期。注意: 在activity结束前,移除广播接收器。 2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。在android下,要想接受广播信息,那么这个广播接收器就得我们自己来实现了,我们可以继承BroadcastReceive
2016-10-09 10:19:33 500
原创 Android——横竖屏切换以及数据保存
生命周期的故事横竖屏切换的过程,会经历onDestroy和onCreate。通俗点说,就是这个activity关闭了,有新起来一个activity。那么,前一个activity的数据肯定都不存在了。虽然这样的切换,你的EditText上输入的内容还在,但是一定要记得,成员变量都是空的啦。数据保存成了一个问题。保存整个activity的方案在Manifest里对于的activ
2016-10-08 10:28:54 2927 1
转载 Android—— onPause和onSaveInstanceState的区别
onPause在Activity部分不可见的时候被调用,onSaveInstanceState在需要空出内存给当前Activity的时候执行。onSaveInstanceState有时候在onPause()运行前调用,有时候不(Pre-HONEYCOMB 版本前可能先调用onSaveInstanceState,之后onPause先调用)。Android Activity的详细文档在这里。
2016-10-08 10:15:33 405
转载 java基础——反射
本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。下面开始正文。【案例1】通过一个对象获得完整的包名和类名123456789101112131415package Reflect
2016-10-07 18:07:23 337
转载 java基础——注解
我们在使用Spring框架的时候,会经常使用类似:@Autowired 这样的注解。我们也可以自己定义一些注解。Java的注解主要在包:java.lang.annotation中实现。1. 元注解什么是元注解?你可以这样理解,元注解是自定义注解的注解。元注解主要包含4个。他们主要在java.lang.annotation中可以找到。我们自己要创建注解的时候必须要用到这些元注解。所以必须
2016-10-07 18:03:33 317
转载 java基础——多线程——多线程面试题
在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式创建线程比较好(比如:继承thread类还是调用Runnable接口),然后逐渐问到并发问题像在Java并发编程的过程中遇到了什么挑战,Java内存模型,JDK1.5引入了哪些更高阶的并发工具,并发编程常用的设计模式,经典多线程问题如生产者消费者,哲学家就餐,读写器或者简单的有界缓冲区问题
2016-10-07 14:08:01 553
转载 java基础——多线程——线程停止
终止线程的三种方法 有三种方法可以使终止线程。 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。 3. 使用interrupt方法中断线程。 1. 使用退出标志终止线程
2016-10-07 13:25:43 440
转载 java基础——多线程——线程安全不安全
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据===========================================================
2016-10-07 12:20:12 293
转载 java基础——多线程——线程池
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 摘要: 本文主要讲了Java当中的线程池的使用方法、注意事项及其实现源码实现原理,并辅以实例加以说明,对加深Java线程池的理解有很大的帮助。 首先,讲讲什么是线程池?照笔者的简单理解,其实就是一组线程实时处理休眠状态,等待唤醒执行。那么为什么要
2016-10-07 12:01:49 398
转载 java基础——多线程
首先讲一下进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。 线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。 多进程是指操作系统能同时运行多个任务(程序)。 多
2016-10-06 18:30:46 197
转载 java基础——强软弱虚引用
博客出自:http://blog.csdn.NET/liuxian131831、概述 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经
2016-10-06 14:54:21 286
原创 java基础——for 与foreach效率
直接for循环效率最高,其次是迭代器和 ForEach操作。 作为语法糖,其实 ForEach 编译成 字节码之后,使用的是迭代器实现的,反编译后,testForEach方法如下:public static void testForEach(List list) { for (Iterator iterator = list.iterator(); iterator.hasNext
2016-10-06 14:06:01 947
转载 java基础——集合讲解
1) 首先查看jdk中Collection类的源码后会发现如下内容: 1234567<span style="font-size: 16px;"> ..."font-size: 16px;"> * @see AbstractCollection
2016-10-05 20:40:17 328
转载 java基础——try catch final
结论:1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally
2016-10-05 19:07:49 396
转载 glide记载圆形图片
亲测有效Glide.with(this).load(URL).transform(new CircleTransform(context)).into(imageView);public static class CircleTransform extends BitmapTransformation { public CircleTransform(Context context
2016-10-05 14:16:32 580
转载 android 命名规范
标识符命名法标识符命名法最要有四种:1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。2 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写3 下划线命名法:单词与单词间用下划线做间隔。4 匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型。 量的取名方
2016-09-21 19:49:04 243
原创 Volley 请求数据中文乱码
覆写{ @Override protected Response parseNetworkResponse(NetworkResponse response) { String str = null; try { str = new Strin
2016-09-19 20:15:06 281
原创 自定义 dialog
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal|c
2016-09-18 09:20:24 197
原创 自适应网络加载的图片(按比例缩小)
网络下载的图片如果加载到屏幕上 由于其 尺寸不定 所以要对其进行统一管理,一般是解析json先得到图片路径(附带图片的width,height)对图片统一管理方案float widthfloat heightwidth = 屏幕wheight = 图片h/(图片w/屏幕w)imageView.setLayoutParams(new LinearLayout.L
2016-09-07 16:37:54 839
原创 android SwipeRefreshLayout 实现 下拉刷新 上拉加载
上图没有什么注释 没有demo 但是 思路清晰 好好理解看一下xml<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/
2016-09-02 21:12:24 517
原创 android Gson解析 (同json解析方式)
通json方式利用Gson解析数据实体类public class Grade { String course; int score; public String getCourse() { return course; } public void setCourse(String course) { this.cou
2016-09-01 20:19:02 321
转载 Android 中 Retrofit 结合 RxJava使用
Retrofit 简单使用Retrofit 目前最新版本是 2.0.0-beta4 ,相比于 1.x 版本,一些 api 有较大变动,因此建议直接通过官方文档和示例进行学习,下面是一个比较基础的 Retrofit 使用示例添加依赖 compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4' compile 'com.
2016-08-30 12:13:50 2542
原创 Android Studio中使用Lambda表达式
首先先项目根目录下的build.gradle中加入classpath 'me.tatarka:gradle-retrolambda:3.1.0'然后再module目录下的build.gradle中使用插件,加入apply plugin: 'me.tatarka.retrolambda'并且在android节点下加入 compileOptions { s
2016-08-25 11:55:42 259
原创 Android Studio Plugin is too old
今天打开as突然就报错 Plugin is too old。。。。。。看到之后顿时感到蛋痛,以为笔记本换系统,想着这个(台式)电脑as挺好的,懒着去下载,所以就直接把sdk as 都拷到笔记笨了 结果新建项目之后就出现了如上的错误,折腾了一下无果,第二天晚上又折腾了一下无果。第三天折腾无果之后下载重新装。成功但是今天台式这台电脑莫名的也出现了同样的错误真的心碎一地!好吧 不能总是写在吧。
2016-08-22 16:46:59 233
原创 TabLayout结合ViewPager的使用
点击title 和滑动viewpager 都可实现滑动布局文件如下<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res
2016-08-15 09:02:17 1409
原创 android studio toolbar 简单使用变换样式背景
原生的toolbar <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background
2016-08-13 14:49:46 4339
转载 CoordinatorLayout与滚动的处理
CoordinatorLayout 实现了多种Material Design中提到的滚动效果。目前这个框架提供了几种不用写动画代码就能工作的方法,这些效果包括:让浮动操作按钮上下滑动,为Snackbar留出空间。扩展或者缩小Toolbar或者头部,让主内容区域有更多的空间。控制哪个view应该扩展还是收缩,
2016-08-12 10:05:25 243
原创 android异步查询 sqlitehelper contentprovider loader
主要代码package com.example.android_loader_manager;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.app.LoaderManager;import android.app.LoaderManager.L
2016-08-11 09:27:35 777
转载 dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算
一、基本概念dip : Density independent pixels ,设备无关像素。dp :就是dippx : 像素dpi :dots per inch , 直接来说就是一英寸多少个像素点。常见取值 120,160,240。我一般称作像素密度,简称密度density : 直接翻译的话貌似
2016-08-04 11:33:22 4321
转载 关于list的item侧滑删除置顶
package com.whr.jsu.myapplication;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.w
2016-08-04 09:49:20 464
基于dwz 、log4j、springmvc、mybatis、mysql后台管理通用完整代码
2018-02-16
Fatjar for eclipse最新版
2015-12-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人