![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
北京流浪狗
这个作者很懒,什么都没留下…
展开
-
android开发自定义带箭头对话框
android开发自定义带箭头对话框import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Path;import android.support.annotation.Nullable;import android.util.Attrib原创 2021-03-11 20:00:19 · 608 阅读 · 0 评论 -
Android开发地址选择省市县镇四级联动(仿京东地址选择)
先看效果:SVID_20191215_173310_1项目GitHub地址:https://github.com/YLY221/AddressProject首先需要在build.gradle中添加以下三个依赖 implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9...原创 2019-12-15 18:27:00 · 2676 阅读 · 2 评论 -
Android开发百度人证识别练习项目Demo
首先要登陆百度智能云(可点击这个连接https://ai.baidu.com/solution/faceprint?track=cp:ainsem|pf:pc|pp:chanpin-renlianshibie|pu:renlianshibie-jiejuefangan-shimingrenzheng|ci:|kw:10010166),然后依次点击:开放能力——》文字识别——》身份证识别——》立即使...原创 2019-12-15 16:23:05 · 597 阅读 · 1 评论 -
反射和注解在android开发中的应用
一,反射:说白了反射主要解决那些我们平时解决不了的问题。比如一个类的构造,属性,普通方法为私有的情况下,或者某些方法虽然不是私有的方法但是是被隐藏的方法,我们就需要使用反射才能获得他们。一般使用Class类来完成反射,这个类把成员变量划分为Filed区域,把构造划分在Construct,把普通方法划分在method区域。下面就来看反射的应用。1,通过反射获得构造方法1.1 通过反射获得构造...原创 2019-06-18 17:06:28 · 182 阅读 · 0 评论 -
Android开发折叠列表简单Demo实现
1,定义一个类VerticalDragListView,/** * Created by yly on 2019/6/26. */import android.content.Context;import android.support.v4.view.ViewCompat;import android.support.v4.widget.ViewDragHelper;im...原创 2019-06-26 17:02:02 · 2095 阅读 · 0 评论 -
android开发之HTTP TCP/IP知识点解析
1,HTTP家族都有:HTTP,FTP,DNS,TCP,UDP,IP其中,TCP和UDP两者之间的关系非常重要。可以看这篇文章https://blog.csdn.net/qq_31332467/article/details/79217262来初步了解TCP UDP之间的不同之处。2.OSI七层协议:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。3,HTTP请求是依报文的形...原创 2019-06-23 16:50:14 · 302 阅读 · 0 评论 -
android开发ACTION_CANCEL在什么情况下出现
首先看一篇文章https://www.cnblogs.com/xiaoQLu/archive/2013/04/02/2994030.html下面是我的理解:一般出现这种情况是因为父布局拦截了事件,但是并不是父布局拦截了什么事件都会进入当前控件的ACTION_CANCEL事件中的,只有当前事件收到了一个事件(也叫做前驱事件),后面的事件被父布局拦截,才会进入当前事件的ACTION_CANCE...原创 2019-08-04 16:30:30 · 2615 阅读 · 0 评论 -
android开发中Builder设计模式应用之——AlterDialog源码分析及其实现方式
1,在开始分析AlterDialog之前我们先来写一个小Dmeo学习一下Builder设计模式的最简单的使用方法:Builder设计模式的定义:将一个复杂对象的构建与它的表示分离,使得不同的构建过程可以创建不同的显示,但其根本还是不变。Product 产品类 : 产品的抽象类; Builder : 抽象类, 规范产品的组建,一般是由子类实现具体的组件过程; ConcreteBuil...原创 2019-06-19 15:10:35 · 304 阅读 · 0 评论 -
加载等待动画
先看一下效果:1,自定义一个ViewGroup继承自LinearLayout:import android.animation.Animator;import android.animation.AnimatorListenerAdapter;import android.animation.AnimatorSet;import android.animation.O...原创 2019-06-08 21:11:45 · 253 阅读 · 0 评论 -
android开发自定义五星好评Demo
import android.content.Context;import android.content.res.TypedArray;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics....原创 2019-06-13 10:21:46 · 969 阅读 · 0 评论 -
android开发自定义下拉菜单
import android.animation.Animator;import android.animation.AnimatorListenerAdapter;import android.animation.AnimatorSet;import android.animation.ObjectAnimator;import android.content.Context;im...原创 2019-06-12 16:49:38 · 1438 阅读 · 0 评论 -
android开发小球回弹动画
import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.support.v4.content.ContextCompat;import android.util.AttributeSet;import android.view....原创 2019-06-12 16:42:02 · 1068 阅读 · 0 评论 -
android开发自定义View的一些知识点总结
1,解决ScrollView和ListView冲突问题(1.3)自定义一个MyListView继承自ListView,之后重写onMeasure()方法.具体的请看ScrollView源码和ListView源码 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {...原创 2019-05-30 23:17:20 · 169 阅读 · 0 评论 -
Android开发ViewDragHelper+ListView解决事件分发滑动冲突
点击链接查看效果图:https://s19.aconvert.com/convert/p3r68-cdx67/8ettg-eeb7q.gif1,首先新建一个类,继承自FramLayout:import android.content.Context;import android.support.v4.view.ViewCompat;import android.support....原创 2019-06-29 14:20:59 · 1439 阅读 · 0 评论 -
Android开发大长图加载
import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.BitmapRegionDecoder;import android.graphics.Canvas;import android.gra...原创 2019-09-25 21:47:24 · 222 阅读 · 0 评论 -
阻塞队列理论
关于阻塞队列在实际生活中的场景,有很多,比如银行排队,前面有人就要去等候区等待,去吃火锅发现前面作为已经满了,也要去等候区等待,这个等候区就相当于阻塞队列。阻塞队列有以下两种特性:当阻塞队列是空的时候,从队列中获取元素的操作像会被阻塞。直到其它线程往队列中插入元素。当阻塞队列是满的时候,往队列中添加元素的操作将会被阻塞。直到其它线程从队列中移除一个或者多个元素或者清空队列。为什么要...原创 2019-09-17 22:11:26 · 220 阅读 · 0 评论 -
synchronized和Lock的区别
区别1:synchronized属于关键字是JVM层面,Lock是API层面,是java的一个类,是jdk5新增加的。区别2:synchronized底层主要依赖与monitorenter和monitorexit这两个类来实现的(这两个类是通过monitor对象完成的,其实wait和notify等方法也依赖于monitor对象只有再同步块或者同步方法中才能调用wait/notify)...原创 2019-09-17 22:10:31 · 106 阅读 · 0 评论 -
CountDownLatch闭锁+枚举的小用法
import java.util.concurrent.CountDownLatch;enum CountryEnum{ ONE(0,"齐国"),TWO(1,"楚国"),THREE(2,"燕国"),FOUR(3,"赵国"),FIVE(4,"韩国"),SIX(5,"魏国"); private int countryId; private String countryName; pri...原创 2019-09-17 11:16:46 · 121 阅读 · 0 评论 -
Android开发侧滑效果的实现
在公司做开发的时候接到一个任务就是实现侧滑效果(酷狗比较老的版本的那种策划效果,QQ6.0以上的版本也是侧滑效果),遇到这种侧滑效果的话怎么实现?首先应该考虑到以下几种办法:1,使用系统自带的DrawerLayout这个控件2,自定义ViewGroup+手势处理类(实现起来代码量有点多)3,自定义ScrollView在这里我们使用第三种方式自定义ScrollView的方式来实现...原创 2019-08-10 22:01:07 · 1254 阅读 · 0 评论 -
java HashMap原理详解以及面试中常见的问题
最近由于工作的原因,我就把HashMap说深入的学习了一下,把知识点做以下总结:在面试中常见的HashMap的问题一般有以下几个:1,JDK1.8中的HashMap有那些改动,请说出三点以上。2,JDK1.8中为什么要使用红黑树。3,HashMap的扩容机制是怎么样的。4,为什么重写对象的equales()方法时,要重写hashCode()方法,跟HashMap有关系吗?为什么...原创 2019-08-01 17:29:26 · 413 阅读 · 0 评论 -
Android开发ScrollView嵌套ListView只显示一行出现的原因以及解决办法
首先看ScrollView中的onMeasure()方法,之所以首先找onMeasure()方法是因为肯定是测量出现了问题,在onMeasure()方法种首先调用了super.onMeasure()方法,点进去之后可以看到在夫布局的onMeasure方法种调用了measureChildWithMargins(child, widthMeasureSpec, 0, heightMeasureS...原创 2019-08-04 19:58:47 · 487 阅读 · 0 评论 -
android开发自定义滑动按钮
1,首先下年一个类CustomButton继承自Viewimport android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Paint;im...原创 2019-05-30 20:46:11 · 1205 阅读 · 0 评论 -
Android开发制作带有侧边栏的联系人列表
首先需要下载pinyin4j-2.5.0.jar包,这是下载链接https://sourceforge.net/projects/pinyin4j/,下载完成之后在lib文件夹下面能够找到该jar包。1,先自定义一个IndexView:import android.content.Context;import android.graphics.Canvas;import andro...原创 2019-05-17 20:41:07 · 622 阅读 · 0 评论 -
Android开发布局优化之ViewStub,include,merge标签详解
这里引入一位大神的博客原创 2019-03-14 21:19:04 · 130 阅读 · 0 评论 -
使用Android消息机制实现点击开始计数和暂停计数
public class MainActivity extends AppCompatActivity { private TextView textView; private Button button; private Handler handler; private boolean startFlag=false;// private boole...原创 2019-01-09 17:37:51 · 774 阅读 · 0 评论 -
Android开发ViewPager+TabLayout详解(使用FragmentPagerAdapter和PagerAdapter两个Demo叙述)
在讲解之前首先看一下所要展示的效果:在使用TabLayout这个控件之前,首先要在build.gradle添加下面这行依赖:compile 'com.android.support:design:27.1.0'1,在activity_main.xml布局文件中添加TabLayout和ViewPager两个控件:<LinearLayout xmlns:android="...原创 2019-01-08 21:33:58 · 1156 阅读 · 0 评论 -
使用ViewPager自定义滑动标题栏
MainActivity中的代码:public class MainActivity extends AppCompatActivity { private ViewPager viewPager; private Fragment[] fragments; private TextView[] textView; private LinearLayout...原创 2019-01-19 14:03:36 · 421 阅读 · 3 评论 -
Android开发数据存储一些注意的事项
1,sharedPreference这个存储的路径是:data/data/文件的包名/文件名,是以xml格式文件进行存储的,他只能保存基本数据类型(包括String类型)。当存储的键和上一次保存的一样的话,那么本次存储就会把上次存储的值替换。下面是实例:public class MainActivity extends AppCompatActivity { private T...原创 2019-01-11 21:24:53 · 264 阅读 · 1 评论 -
Android开发让广播来启动Service进行耗时工作的处理过程详解
今天复习了服务的基础知识,下面尝试使用广播来启动一个Service进行耗时工作的处理。首先明白,当启动服务的时候有两种方法,一种是使用StartService,另一种是使用bindService,使用bindService启动的话执行的方法onCreate--->onbind,而且这种方法启动的话,只要该service对象存在,onbind只执行一次,以后再点击bindService按钮...原创 2019-01-11 17:15:50 · 3396 阅读 · 2 评论 -
Android开发Fragment和Activity以及Fragment和Fragment之间的的通信(在碎片活动之间实现点击跳转)
最近重新梳理了一遍碎片Fragment的基础知识,这篇文章就总结一下碎片的相关知识点。首先定义两个Fragment类。一个是OneFragment.jva,另一个是TwoFragment.java,如下:在OneFragment里面操作碎片里面的控件使其跳转到指定的Activity,这里主要使用getContext()或者getActivity()方法。 public View...原创 2019-01-06 18:37:56 · 1925 阅读 · 0 评论 -
自定义广播详解
静态注册:也就是在AndroidManifest进行注册。这种注册只要应用程序运行起来之后,那么广播接收器就一直存在。1,首先需要在AndroidMainfiest里面注册广播: <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" and...原创 2019-01-11 10:09:32 · 813 阅读 · 0 评论 -
百度地图开发怎么获取两个SHA1,获取到之后怎么正确填写配置
最近在做一个项目,用到了百度地图。要想使用百度地图就必须先新建一个项目,然后提交,在这个过程中必须获得项目得SHA1值,如下:至于创建项目的过程,开发者中心已经说的很详细了,我在这里就不赘述了,主要讲解怎么获得并正确填写两个SHA1;如果你的项目还没有生成签名得apk(至于什么是签名的apk,可以自己去百度),那么这个啊时候你肯定没有jks文件,这个时候只能使用keytool -l...原创 2019-01-01 12:52:49 · 471 阅读 · 3 评论 -
java final关键字详解(为什么有些声明的时候会用public static final )
1,被final关键字定义的类不能被继承。比如说String类,就不能被我们继承。2,使用final定义的方法不能被子类所覆写。意思就是说我的方法功能已经足够强大了,不需要子类再给我添加任何功能了。3,前两条不是很重要,一般在开发过程中用不上,这一条才是很重要的:使用final定义的变量就成了常量,常量必须在声明的时候赋值,并且不允许修改。基于以上的原因,比如,在A类中定义了一个字符串...原创 2018-12-23 18:06:41 · 7475 阅读 · 0 评论 -
怎么在RecyclerView的适配器Adapter实现点击跳转事件(关键找到context上下文)
这个下问题还是在项目中遇到的,查了好多资料才明白,废话不多说,先看一下效果图(一个RecyclerView列表,点击列表中的条目,弹出图提示框,并跳转到另外一个Activity)https://weibo.com/tv/v/H9YPaiFtz?fid=1034:4323787475205327 上面链接就是效果。点击是在Adapter里面实现的,刚开始我也是和大家一样不明白为什么写了下面的...原创 2018-12-22 14:12:16 · 6096 阅读 · 11 评论 -
Android开发使用一行代码实现点击切换下一张图片
首先在布局里面放一个ImageView试图:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageV...原创 2018-12-16 09:54:46 · 3913 阅读 · 0 评论 -
Android开发签名(签名的作用,怎么使用Android studio进行签名)
一个Android项目可以以它的包名作为唯一标识符,但是手机上的应用可能不止这一个应用,如果手机上有两个应用恰好使用了同一个包名,那么其中一个应用程序就会覆盖另一个,为了避免这种情况的发生,Android要求对作为产品发布的应用程序进行签名。因此,签名有以下两个作用:1,确定发布者的身份,确定发布者的身份信息。2,确保应用的完整性,签名会对应用程序中的所有文件进行保护,从而确保应用程序...原创 2018-12-15 15:40:39 · 4408 阅读 · 0 评论 -
Android开发关于Handler不太容易理解的几个知识点(post,runOnUiThread,Handler内存泄漏使用弱引用解决)
Android开发Handler中为什么会使用到弱引用:主要是解决Handler内存泄漏问题。什么是Handler内存泄漏?当使用内部类(包括匿名类)来创建Handler的时候,Handler对象会隐式地持有一个外部类对象(通常是一个Activity)的引用,不然你怎么可能通过Handler来操作Activity中的View。而Handler通常会伴随着一个耗时的后台线程(例如从网络拉取图...原创 2019-03-19 22:47:07 · 546 阅读 · 0 评论 -
Android开发通知详解适配8.0手机,解决华为手机一直有声音提示)
这里先引入一篇博客,讲解华为手机怎么取消进度条情况下一直提示有声音https://blog.csdn.net/fzkf9225/article/details/81119780https://www.jianshu.com/p/8cec293cfa9a安卓8.0通知适配接下来引入一个通知工具类:import android.app.Notification;import andr...原创 2019-03-23 10:21:45 · 1036 阅读 · 0 评论 -
Android开发轮播图Demo
首先声明一下:布局文件里面的某些属性是不完整的,因为如果要完整粘贴完的话,设计的大大小小的xml文件比较多。这篇博文主要是记录轮播图实现逻辑:import android.os.Handler;import android.os.Message;import android.support.annotation.NonNull;import android.support.v4.v...原创 2019-05-12 17:50:24 · 651 阅读 · 0 评论 -
Android开发dp转换为px , sp工具类,获取屏幕高度宽度工具类,获取状态栏的高度宽度工具类
import android.content.Context;/** * dp,sp 和 px 转换的辅助类 */public class DisplayUtil { private DisplayUtil() { /* cannot be instantiated */ throw new UnsupportedOperationExcept...原创 2019-05-15 23:26:20 · 197 阅读 · 0 评论