自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 android笔记

1:消息机制流程 sendMessage ->MessageQueue.enqueueMessage :添加消息 Looper.loop->MessageQueue.next->dispathMessage->hadlerMessage; 2:主线程可以new Handler 因为 在ActivityThread main方法里面已经初始化了Looper; 3:子线程如何调用handler ; Looper.prepare(); new Handler(){ ...

2022-04-28 00:52:25 1401

原创 Binder 原理

Client进程 将参数(整数a和b)发送到Server进程 / 1. Client进程 将需要传送的数据写入到Parcel对象中 // data = 数据 = 目标方法的参数(Client进程传进来的,此处就是整数a和b) + IInterface接口对象的标识符descriptor android.os.Parcel data = android.os.Parcel.obtain(); data.writeInt(a); data.writeInt(b); data....

2022-02-11 11:49:09 523

原创 Cannot call this method while RecyclerView is computing a layout or scrolling

最近项目中用到了一个条目展开关闭的效果,出于效率的问题采用了三方工具BaseMultiItemQuickAdapter(请自行百度),功能很快完成了但是问题也出现了,因为产品的需求需要进入页面条目就展开,最初的时候是崩溃,我以为测试环境数据问题,于是乎常用的方法try...catch...捕获下异常,但是问题来了,数据加载不全,没办法把异常打印出来看看吧,发现并不是数据问题,原因是因为expand...

2019-11-11 12:25:55 390

原创 Zxing 预览框不变增加扫描区域,仿微信扫到一半就可以成功

最近公司提了个需求,要求项目里面的二维码扫描功能类似微信扫一扫功能,扫到4分之3左右就能成功扫出来。既然需求来了,那就搞呗,网上查了一堆资料,也没有找到具体的解决方案。那只能自己研究了,琢磨一下,既然保持预览框不变,那我们变得只能是相机的采集区域了,于是打开zxing的源码看了一下。: 重点是两个方法 getFramingRect():这个方法是二维码预览区域,也就是那个扫描框 getF...

2019-01-31 09:09:40 852

转载 代码设计 六大原则

单一职责原则 Single Responsibility Principle定义:一个类或者一个接口,最好只负责一项职责。问题由来:类T负责两个不同的职责P1和P2。由于职责P1需要发生改变而需要修改T类,就有可能导致原来运行正常的职责P2功能发生故障。解决方法:遵循单一职责原则。分别建立新的类来对应相应的职责;这样就能避免修改类时影响到其他的职责;当遇到职责扩散的时候,在逻辑足够简单的时候,才可...

2018-04-10 11:45:17 535

转载 android textview 代码设置字体大小包含适配

setTextSize(TypedValue.COMPLEX_UNIT_PX,12); //12像素  setTextSize(TypedValue.COMPLEX_UNIT_SP,12); //12SP  setTextSize(TypedValue.COMPLEX_UNIT_DIP,12);//12DIP 次方法,包含适配。

2017-12-07 09:57:58 3149

原创 android 实现apk下载展现通知栏

private static String savePath; private static String saveFileName; private static int id =1; private static NotificationManager mNotifyManager; private static NotificationCompat.Builder mBuilder ;

2017-10-26 19:31:12 1016

原创 仿知乎EditText 输入@+用户名效果

et_content.setOnKeyListener(new EditKeyListener()); private class EditKeyListener implements View.OnKeyListener{ @Override public boolean onKey(View v, int keyCode, KeyEvent event) {

2017-09-26 14:30:54 504

原创 RecyclerView 条目加载图片混乱处理方式之一

@Override public void onBindViewHolder(HomeFragmentRecyclerViewAdapterViewHolder holder, int position) { final HomeDynami.MessageBean bean = data.get(position); HashMapString, Object> map = ge

2017-09-26 14:28:18 1884

转载 Kotlin之类和对象

Kotlin中声明一个属性可以使用val或var关键字。var表示为可变属性,val表示为只读属性。 class Test { val x = 0; var y = 1.0f } 自定义的 Getter && Setter var name: String get() = name set(value) { "The

2017-06-06 14:06:02 446

转载 Kotlin之类和对象

构造器 主构造器 Koltin 中的类可以有一个 主构造器,以及一个或多个 次构造器,主构造器是类头部的一部分,位于类名称之后 class Person constructor(firstName: String) {} 如果主构造器没有任何注解,也没有任何可见度修饰符,那么constructor关键字可以省略。 主构造器中不能包含任何代码,初始化代码可以放在 初始化代码段中

2017-06-06 14:04:17 538

转载 kotlin基础语法

在阅读以下内容前,你可能需要先了解一些Kotlin语言的特性:在语句的行尾可以不用加分号(加上也不会错),声明一个方法需要加上fun关键字,如果函数是重载父类的方法,还必须要加上override关键字,方法的参数是先写形参名后跟冒号再写形参类型;kotlin源文件不需要相匹配的目录和包,源文件可以放在任何文件目录。但是我们在写Android的Activity等类时,清单文件中的声明,必须与实际包路

2017-06-06 10:53:07 1145

转载 Kotlin中的集合介绍

好的,本节我们继续来搞Kotlin,这节要搞的是: Kotlin中的集合与它的操作符们集合在我们实际开发中用的还是比较频繁的,Kotlin中的集合不同于Java中的集合,Kotlin中的集合根据“是否可变”,分为两派:可变集合与不可变集合,而后者是在前者的前面加上了 Mutable : 列表:List/MutableList; 集:Set/MutableSet; 映射:Map/MutableMa

2017-06-06 10:51:48 2073

原创 Lambda表达式内置函数式接口

import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; import ja

2017-06-02 18:47:40 454

原创 Lambda表达式的基础语法

public class LambdaTest { /* * 操作符  -> * 左边是参数体 * 右边是Lambda执行体 * **/ @Test public void test() { /** 语法格式一: * 无参数,无返回值 * () -> System.out.println("无参") * */ Runnable r =() ->System.out.

2017-06-02 14:11:16 474

原创 ViewPager轮播图

对于轮播图Android已经不是什么新东西了,本文用ViewPager,Handler以及线程实现简单的轮播图,先看一下代码 @Override protected void onResume() { super.onResume(); if (isStop) isStop = !isStop; new Thread(new Runna

2017-05-22 11:51:53 411

原创 RecyclerView条目复用导致混乱的解决方案之一

无论Recycler或者ListView都采用复用机制这是两个控件的精华所在,但是这个复用机制在某些特定的情况总会给我们带来不必须要的烦恼,我模拟一下RecyclerView的复用,条目上的控件只用TextView和CheckBox,我们先来看下Item的XML文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/an

2017-04-24 20:01:19 7164

转载 RecyclerView分页加载

/recyclerview滚动监听 recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) {

2017-04-24 11:32:18 4724

原创 RecyclerView 加载图片不显示问题

近期项目中有个九宫图的功能,于是采用了RecyclerView,实现功能并没有太大的难度,获取数据,指定GridLayoutManager,代码就不上了,关键的问题在于数据填充完毕后,更换图片,会出现几张空白的位置,而且是在固定的位置,数据跟踪发现setImageBitmap(null)确实执行了,而且数据填充上去了,但是显示出来就是空白的。 后来想到之前看过的博客关于RecycleView缓存

2017-04-22 17:30:12 4339

原创 仿微信朋友圈点赞人列表和评论人列表

前端时间有朋友问我朋友圈的功能是否好实现,我这几天趁着公司的项目刚刚上线没有多少事情,研究了下朋友圈,发现朋友圈这个功能如果做细了真的挺麻烦的,要考虑的因素很多。我运用一些Android常用的知识点,Handler、自定义ViewGroup简单实现了点赞人和评论人列表展示,附上GitHub下载地址,希望大家勿喷!

2017-04-14 19:14:46 6790

原创 Android ViewTree and DecorView

最近在看一款新闻类APP的源码,进行了一翻学习,感觉学到了不少东西,给大家分享一下,说的不好,请大家见谅。这款新闻类的APP采用多个Fragment实现的主界面的展示,而且界面中存在了界面缩放、位移、透明度等动画效果!所以对事件分发的处理比较繁琐,作者处理的方式是改变了ViewTree的结构,自定义了两个ViewGroup加到DecorView的下面,Android ViewTree视图的最顶层的

2017-04-09 16:54:09 530

转载 MeasureSpec学习 - 转

在自定义View和ViewGroup的时候,我们经常会遇到int型的MeasureSpec来表示一个组件的大小,这个变量里面不仅有组件的尺寸大小,还有大小的模式。 这个大小的模式,有点难以理解。在系统中组件的大小模式有三种: 1.精确模式(MeasureSpec.EXACTLY) 在这种模式下,尺寸的值是多少,那么这个组件的长或宽就是多少。 2.最大模式(MeasureSp

2017-02-13 17:42:57 404

转载 Android中attrs.xml文件的使用详解

attrs.xml内容如下: [html] view plain copy   xml version="1.0" encoding="utf-8"?>        resources>            declare-styleable name="MyView">                attr name="textCol

2017-02-13 14:47:20 419

ViewPagerBannerDemo

最简单的轮播图,ViewPager实现

2017-05-22

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

TA关注的人

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