
Android开发基础
文章平均质量分 73
Nobody_else_
一个连屎都不敢吃的普通人
展开
-
手把手教你用自定义View实现 长按出现水漫效果的进度按钮(长按取消)
目录效果展示实现方法一、思路二、代码实现三、完整代码及使用示例Demo示例结语效果展示实现方法一、思路二、代码实现三、完整代码及使用示例Demo示例结语原创 2021-02-10 23:19:17 · 2867 阅读 · 2 评论 -
手把手教你使用自定义View实现 仿Keep长按出现进度条按钮
效果展示实现方法一、思路通过自定义View画出一个长按出现环形包围进度条的按钮,当进度条满了进行接口回调,告诉当前运行的Activity,动画执行完毕。1.画出中心圆形按钮确定自定义View的大小尺寸。画出中心圆按钮。2.监听点击事件,当手指点击按钮时,放大按钮,环形进度条出现,并进度自动增加确定获取焦点时按钮的大小,重新绘制。画出外圆环,使用定时器,定时增加圆环的弧度。失去焦点时,中心按钮恢复,外圆环弧度逐渐减少。二、代码实现自定义View核心代码:1.使用到的变量介绍原创 2021-02-05 18:32:50 · 3678 阅读 · 3 评论 -
Calling startActivity() from outside of an Activity context requires FLAG_ACTIVITY_NEW_TASK 引发的思考和分析
最近在开发过程中遇到这么个问题,报错如下当我使用传入context的Intent来启动Activity,app崩溃了,而且报了一个我以前重来没见过的错误。错误log的意思大概为,我使用了一个不属于Activity的Context来调用startActivity方法,需要设置一个FLAG_ACTIVITY_NEW_TASK的Flag才可以正常运行,而且最后给我来个了疑问句,问我这是不是我所期待的也是挺骚的。问题分析(如果急于求解,不管过程和原因的话,可以跳过分析过程,直接看后面的 解...原创 2020-10-26 10:49:17 · 830 阅读 · 1 评论 -
Android 开发TextView跑马灯设置,及其失效解决方法
最近在给TextView设置跑马灯时,发现怎么弄都不生效,加了很多网上所谓的方法,都不行,最后就多加了一句代码,解决了,做个笔记。xml布局代码:网上所提到的属性都加上了<TextView android:layout_width="match_content" android:layout_height="wrap_content" android:text="@string/my_location"原创 2020-09-09 15:25:33 · 2254 阅读 · 4 评论 -
结合代码!Android常见的设计模式(持续更新)
这里借鉴了一个篇写非常不错的博客:https://www.cnblogs.com/android-blogs/p/5530239.html什么是设计模式?设计模式(Design pattern)是一套被反复使用的代码设计经验的总结。使用设计模式的目的是为了可重用代码、让代码更容易被他人理解。设计模式是是软件工程的基石脉络,如大厦的结构一样。单例模式:在这之前先要了解单例...原创 2019-07-28 21:03:11 · 1500 阅读 · 0 评论 -
Android 常见面试题——死锁,线程的运行、阻塞和死亡
参考:https://blog.youkuaiyun.com/yanxiaolx/article/details/51944048定义:一组相互竞争系统资源或进行通信的进程间的“永久”阻塞。如两个线程相互等待对方释放同步监视器时就会发生死锁。一旦发生死锁,整个程序不会发生任何异常,不会给出任何提示,只是所有线程处于阻塞状态,无法继续。原因:(1)竞争不可抢占性资源。(2)竞争可消耗资...原创 2019-07-26 20:42:19 · 3965 阅读 · 0 评论 -
什么是内部类?内部类的作用;什么是抽象类,抽象类和接口
定义:将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类,可以完善Java多继承的写法分类:成员内部类 局部内部类 匿名内部类 静态内部类成员内部类: 成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员)class outerClass { class innerClass { }}...原创 2019-08-15 01:11:53 · 452 阅读 · 0 评论 -
Java各种变量的不同,Java各种数据类型的默认值
分类定义:变量分为成员变量、局部变量。成员变量:包括实例变量和静态变量(类变量)局部变量:形参(方法签名中定义的变量)、方法局部变量(方法内定义)和代码块局部变量(代码块内定义)区别:静态变量:用static修饰,不属于实例对象,属于类所有,只要程序加载了字节码,不用创建实例对象静态变量都会被分配空间,已经可以使用。实例变量:没有static修饰,只有实例化对象...原创 2019-07-27 14:51:38 · 527 阅读 · 0 评论 -
重写equals()方法的注意事项及其原因,为什么重写equals()时需要hashCode()方法?
在这之前可以先了解equals()方法的重写:https://blog.youkuaiyun.com/Nobody_else_/article/details/97518556首先先弄清楚hashCode()是用来干嘛的?一提到hashcode,很自然就想到哈希表。将某一key值映射到表中的一个位置,从而达到以O(1)的时间复杂度来查询该key值。Object类源码(如下所示)中,hashCod...原创 2019-07-27 17:41:56 · 942 阅读 · 0 评论 -
String、StringBuffer、StringBuilder区别,int与integer的区别
区别:String:字符串常量,不可变对象,每一次对String进行修改都相当于生成了一个新的String对象,然后将指针指向新的String对象,如果经常改变,则会频繁GC(Garbage Collection,垃圾回收),影响速度 StringBuffer:字符串变量(线程安全),修改不会生成新对象,有append()、insert()方法 StringBuilder:字符串变量(非...原创 2019-08-12 10:18:47 · 368 阅读 · 0 评论 -
进程和线程的区别,wait()和sleep()区别,wait/notify关键字的理解
进程:系统资源分配最小单位线程:线程是进程的一个实体,程序执行的最小单位 可与同属一个进程的其他的线程共享进程所拥有的全部资源关系:简而言之,一个程序至少有一个进程,一个进程至少有一个线程 进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段,线程没有独立的地址空间,它使用相同的地址空间共享数据...原创 2019-08-19 13:59:26 · 441 阅读 · 0 评论 -
HTTP和HTTPS的区别,TCP为何要三次握手和四次挥手
参考:https://blog.youkuaiyun.com/xiaoming100001/article/details/81109617HTTP特点无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作 无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。 基于请求和响原创 2020-05-14 17:49:07 · 1635 阅读 · 0 评论 -
2020年度 Android面试知识点总结(持续更新)
Android:Java:数据结构:算法:堆排序算法https://blog.youkuaiyun.com/u010452388/article/details/81283998计算机网络基础:原创 2020-06-28 20:38:23 · 2041 阅读 · 0 评论 -
各种情况下的Activity生命周期与及跟Fragment生命周期的比较(为什么横屏切换竖屏会调用两次)
横竖屏切换的时候,Activity 各种情况下的生命周期平时在网上看到的答案一般都是这样的↓1)切换横屏时:onSaveInstanceState->onPause->onStop->onDestory->onCreate->onStart->onRestoreInstanceState->onResume2) 切换竖屏时:...原创 2020-04-10 14:17:49 · 1986 阅读 · 0 评论 -
Android开发出来的app安装后没有出现在程序列表(图标消失)
这个问题就要提到Intent里面的android.intent.action.MAIN——决定一个应用程序最先启动那个组件android.intent.category.LAUNCHER——决定应用程序是否显示在程序列表里(是否在桌面上显示一个图标)要想APP显示图标(快捷打开方式)就必须要有以上两个属性,缺一不可,因为:android.intent.category.LAUNCHER决定应用程序...原创 2018-03-21 11:39:50 · 12354 阅读 · 0 评论 -
Android使用OkHttpClient进行简单的Http请求
这篇博客主要是介绍怎么简单使用OkHttpClient访问Url进行简单的Http请求。第一步,在Android工程中添加依赖:compile 'com.squareup.okhttp3:okhttp:3.7.0'这里以okhttp3为例子,在build.gradle(app)下的dependencies标签下添加依赖:第二步,代码实现:可以新建一个类用来练习...原创 2019-03-13 21:51:50 · 3494 阅读 · 2 评论 -
CountDownLatch的原理和并行性
这里借鉴了一篇总结得不错的博客:https://blog.youkuaiyun.com/joenqc/article/details/76794356CountDownLatch的概念CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执...原创 2019-07-29 09:54:58 · 505 阅读 · 0 评论 -
android:state_pressed是什么意思?
是当控件被按下的时候控件的表示,可以实现按下按钮时,按钮变成领一个模样,松开之后又恢复原样。类似的还有:android:state_focused是当控件获得焦点的时候控件的表示。android:state_selected 选中时控件的表示。需要提一下的是selected和focused的区别:focused是指获取焦点,早期某些设备存在方向键盘可以用来移动焦点,而pressed仅仅是指按下状态...原创 2018-03-23 17:18:09 · 9512 阅读 · 0 评论