自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RecyclerView嵌套多个Edittext遇到的一个问题

最近做项目遇到一个小问题,记录一下,做个备忘。需求如下图:头部是规格标签,下面列表对应的是各规格的详细数据,上下有一个增删的联动。这个问题不大,主要是下面的RecyclerView嵌套了Edittext,调试时发现会产生数据混乱的情况。我一开始是直接在getView的时候为Edittext绑定了TextWatcher,并在重写的afterTextChanged方法中直接将最终的数据ad...

2018-03-05 13:35:44 1114

原创 Activity生命周期的一些注意要点

1.当 Activity 的生命周期执行 onPause -> onStop 时,如果当前 Activity 的主题为透明主题,则 onStop 不会执行。2.当 Activity 因资源相关配置改变被销毁重建时:系统会调用 onSaveInstanceState 来保存当前 Activity 的一些状态,调用时机在 onStop 之前,但与 onPause 并没有既定的时序关系。新创建...

2018-03-02 14:41:46 269

原创 神经网络——神经元

从生物上来说,神经元就是神经细胞的别称。神经元最主要的两个特性:兴奋性和传导性。 兴奋性:神经元的兴奋性具有一种很特殊的现象,当刺激强度未达到某一阈限值时(限值的概念为人工神经元模仿提供了理论依据,传输函数中大多数函数都是依据此原则来输出的),神经冲动不会发生,而当刺激强度达到该值时,神经冲动发生并能瞬时达到最大强度,此后,刺激强度即使再继续加强或减弱,已诱发的冲动强度也不再发生变化。兴奋性的原理

2017-12-29 05:09:42 1314

原创 RecyclerView嵌套多个Edittext遇到的一些问题

最近做项目遇到一些小问题,记录一下,做个备忘。需求如下图:头部是规格标签,下面列表对应的是各规格的详细数据,上下有一个增删的联动。这个问题不大,主要是下面的RecyclerView嵌套了 Edittext,调试时发现会产生数据混乱的情况。我一开始是直接在 getView 的时候为 Edittext 绑定了 TextWatcher,并在重写的 afterTextChanged 方法中直接将最终的数据

2017-12-12 15:28:24 3160

原创 ScrollView嵌套ListView导致item显示不全的原因

一句话总结:ScrollView重写了它的父类FrameLayout的measureChild和measureChildWithMargins方法,使传入子类的HeightMeasureSpec的模式为UNSPECIFIED,导致listview计算高度时跳过了measureHeightOfChildren方法的执行,只计算了第一个item的高度。分析:首先看listview的onMeasure方

2017-11-12 23:51:44 796

原创 ScrollView嵌套ListView的问题

(1)显示不全:listview只能显示出一个item 解决方法:手动计算出listview的实际高度 public static void setListViewHeightBasedOnChildren(ListView listView) { if (listView == null) return; ListAdapter listAdap

2017-11-07 17:27:39 204

原创 OOP圣经———面向对象的五个基本特性

(1)万物皆为对象将对象视为奇特的变量,特可以存储数据。除此之外,你还可以要求它在自身上执行操作,理论上讲,你可以抽取待求解问题的任何概念化构件,将其表示为程序中的对象。(2)程序是对象的集合,他们通过发送消息来告知彼此所要做的。想要请求对象,就必须对该对象发送一条消息。更具体地说,可以把消息想象为某个特定对象的方法的调用。(3)每个对象都有自己的由其他对象所构成的存储换句话说,可以通过创建包含现有

2017-03-27 23:39:46 781

原创 性能优化(内存泄漏)

新年伊始,并不太忙。闲来无事,准备优化一下我们那传了几代人的古老的app。准备先从内存方面开始着手,这方面不会太大的变动,比较好操刀。一、知识准备:(1)JVM的内管理机制 (2)内存泄漏的原理以及android内存泄漏易发生的情景 (3)内存分析工具的使用 下面几篇博客很全面了: 内存溢出与内存泄漏 Android 内存泄漏总结 Java内存、Android 内存泄漏 Java g

2017-02-11 14:38:43 449

原创 内存溢出与内存泄漏

什么是内存溢出?简单点说,当一个对象不再被使用(即失去了利用价值),但它的引用却依然被其他对象所持有,导致JVM的垃圾回收机制无法回收释放此对象,则该无用对象继续占用内存空间(占着茅坑。。。),即内存泄漏了。所有内存都被占用且无法进行垃圾回收时,就会发生内存溢出。全面点说,那要从java虚拟机运行时的数据区域说起,《深入理解java虚拟机:JVM高级特性与最佳实践》这本书对此阐释很明确,jvm所管理

2017-02-07 11:51:28 316

原创 代理、网关、隧道

代理、网关、隧道都属于通讯数据转发的应用程序,这些应用程序能够将客户端发起的请求转发给下一站服务器,并且能够将该服务器的响应转发给客户端。

2017-01-19 16:22:38 442

原创 Http协议(图解http读书笔记)

什么是Http协议:Http协议是用于客户端与服务器通讯的一种协议,首先它明确地区分了哪端是客户端哪端是服务器,协议规定了先发起请求的是客户端,换句话说一定是从客户端开始建立的通信,服务端在接到请求之前不会主动和客户端建立联系。然后,它规定了客户端与服务端相互通信的数据格式,资源定位方式(uri),交互命令,状态管理方法(cookie)等。Get,Post方法:请求报文:(get方法) GET/i

2017-01-17 22:08:18 458

原创 HTTPS(图解Http图书笔记)

一 Http的缺点:(1)通信使用明文(未加密),内容可能被窃听; (2)不验证通信方的身份,有可能遭遇伪装; (3)无法证明报文的完整性,有可能遭到篡改。二 Https加密模式:混合加密:交换密钥环节使用公开密钥加密方式,建立通信交换报文阶段使用共享密钥加密方式。注:(1)公开密钥加密方式:使用非对称密钥,服务器持有私钥,客户端持有公钥。客户端发送请求用公钥加密,服务器用私钥解密,保证信息

2017-01-17 16:56:02 1121

原创 观察者模式(结合代理模式)

概述此观察模式是基于PanoramaImageView项目(github地址:https://github.com/gjiazhe/PanoramaImageView)的需求来实现的,功能上与原项目的 GyroscopeObserver基本相同,额外做了接口的完善并与代理模式进行结合,将观察者与被观察者解耦,更具拓展性。观察者模式:对于设计模式来说,uml类图最直观简明的阐述方式:上图《大话设计模

2017-01-05 11:49:46 483

原创 观察者与陀螺仪传感器的应用(基于PanoramaImageView)

原作者的PanoramaImageView项目github地址:https://github.com/gjiazhe/PanoramaImageView实现原理:首先将自定义PanoramaImageView的ScaleType手动置为CENTER_CROP:将图片等比例缩放,让图像的短边与ImageView的边长度相同,即不能留有空白,缩放后截取中间部分进行显示。图像相对长的边就会“显示”在屏幕外

2017-01-02 18:31:32 1099

原创 对遇到的坑的记录

混淆生成的apk压缩包解压出来的classes.dex文件有多个,且很小(最大64kb) 首先工具是Android Studio 2.2以及Android studio自带的虚拟机。 运行项目,在项目的build/outputs/apk目录下得到生成的apk,改后缀zip,解压。 但是如果虚拟机版本在5.0以上(分别试了21,22,23)则解压后是这个样子的:

2016-10-12 16:03:17 261

原创 性能优化总结

一、布局优化尽量减少布局的层级,有选择的使用功能较为复杂,性能较低的viewgroup,如:relativeLayout,但推荐使用relativiLayout来替换多重嵌套的linearLayout,减少布局层级。推荐使用<include>,<merge>和ViewStub来布局。二、绘制优化避免在view的onDraw中进行大量的操作。主要体现于两个方面:不要在onDraw中创建新的局部对象

2016-09-13 12:53:11 326

原创 错误:android the following class coundn‘t be instantiated

预览布局时报错误,可能是由于布局中包含了一些对机器实际情况的判断,要根据实际情况来决定显示状态。 也可能是相关的包没有正确导入。

2016-09-07 12:48:00 418

原创 Activity的生命周期与启动模式

(1)生命周期要点一.典型情况下:(1)onCreat: 主要做一些初始化工作,如 加载配置布局 管理fragment 对activity之前的状态进行恢复(如果存在) 最后调用application的dispatchActivityCreated方法进行创建管理(2)onRestart: 当activity由不可见重新到可见状态会调用onRestart 主要工作就是将一个boolea

2016-09-06 02:03:27 377

原创 关于BaseActivity的一些总结

BaseActivity并不是个陌生的事物,如同一个老大哥般指引着项目的第一步,是个相当亲切的事物。每个项目由于其需求不同BaseActivity也不尽相同,但大方向来说随着经验的丰富会有更多的通用的功能会被封装进来,但也要根据所需进行适度的筛选,尽量使它强大而不臃肿。这里记录一些四处搜刮来的和自己项目中用到的一些可以封装的功能以及其简略代码,以备健忘症发作的时候作为参考。

2016-08-30 03:32:20 626

原创 map那些事(1)

今天掉进了一个小坑,源于对java map集合的一个基础知识的遗漏,不过还好寡人机智,灵光乍现,随手度娘。  过程暂不表,遗漏的基础知识是HashMap存储顺序与插入顺序不尽相同,TreeMap内部有一定顺序但也不保证与插入顺序相同,若想保证存储顺序与插入相同,则应该使用LinkedHashMap。或者使用list,或者插完后再进行排序。 最近也在复习java,在这遇到了问题就拿它

2016-01-11 03:21:11 341

原创 java中的i++与++i

i++是在操作完成之后执行一次i=i+1,而++i则是在操作完成之前执行一次i=i+1。具体什么是操作完成,个人认为在java中应该是一步基本运算。因为java对于自增减运算符存在一个中间缓存变量机制。对于i++来说,先将i存入一个中间变量temp,再将i自增1。即 temp=i;i=i+1;这个temp被用来参与实际的运算。例如int a=0,i=1; a=(i++)+(i++);

2016-01-11 03:10:57 401

原创 java基础

java特点之平台无关性: java运行平台之上存在一个java运行环境,即JRE。由JVM,类库,以及一些核心文件组成。java源文件被编译成可以被JVM直接识别、运行的字节码,再由JVM根据所运行的平台翻译成该平台的机器码。java特点之面向对象: 即封装继承多态 封装:可以理解为构建类的过程。将数据和对数据的操作封装在一起,从具体的事物(实例)中抽取共同性质形成一般性的概念,如一个类。

2015-12-10 00:43:30 320

空空如也

空空如也

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

TA关注的人

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