自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 资源 (4)
  • 收藏
  • 关注

原创 viewPager的adapter--FragmentInstancePagerAdapter

viewPager的adapter

2023-12-08 16:12:49 442

原创 android快速网络请求之android-networking

快速网络请求,基于okHttp

2023-12-08 16:06:23 491

原创 android之图片选择器--pictureselector

pictureselector

2023-11-23 14:14:58 1165

原创 Android图像选择之 PictureSelector

一款针对Android平台下的图片选择器,支持从相册获取图片、视频、音频&拍照,支持裁剪(单图or多图裁剪)、压缩、主题自定义配置等功能,支持动态获取权限&适配Android 5.0+系统的开源图片选择框架。废话不多。开干!!添加依赖: //图片选择器 api 'io.github.lucksiege:pictureselector:v3.11.1' //图片压缩 api 'io.github.lucksiege:compress:v3.11.1'

2023-09-15 12:23:15 2047 1

原创 SQL语句优化汇总

21、用select top 100 / 10 Percent 来限制用户返回的行数或者SET ROWCOUNT来限制操作的行。READ_ONLY:不允许通过游标定位更新(Update),且在组成结果集的行中没有锁。MS SQL Server查询优化方法。查询速度慢的原因很多,常见如下几种。

2023-09-15 11:59:53 286

原创 彻底明白Java的IO系统

但是,如果我们想实现“先把要写入文件的数据先缓存到内存中,再把缓存中的数据写入文件中”的功能时,上面的API就没有一个能满足我们的需求了。如CharArrayReader:和ByteArrayInputStream的作用都是把内存中的一个缓冲区作为InputStream使用,所不同的是前者每次从内存中读取一个字节的信息,而后者每次从内存中读取一个字符。1区中,当读取文件时,先把文件内容读到缓存中,当调用in.readLine()时,再从缓存中以字符的方式读取数据(以下简称“缓存字节读取方式”)。

2023-09-15 11:58:13 83

原创 java23种设计模式与追MM

20、STATE—跟MM交往时,一定要注意她的状态哦,在不同的状态时她的行为会有不同,比如你约她今天晚上去看电影,对你没兴趣的MM就会说“有事情啦”,对你不讨厌但还没喜欢上的MM就会说“好啊,不过可以带上我同事么?2、BUILDER—MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的MM也可以轻松搞掂,这就是我的“我爱你”builder。

2023-09-15 11:47:56 400

原创 Java那些不为人知的特殊方法

你会看到它生成了三个方法,应该是x 变量的setter和getter方法,以及x()方法对应的一个synthetic方法。译者注:其实作者说到最后也没讲完到底什么是volatile方法,其实volatile方法如篇首所说,是不存在的,所谓的volatile方法就是指 bridge方法。他们发现,使用immutator(这个项目探索了Java的一些不为人知的细节)生成的Java代码使用volatile了作为方法的关键字,而这样的代码没法通过编译。有趣的是,两个方法的签名是一模一样的,只有返回类型不同。

2023-09-15 11:46:25 43

原创 JAVA实现线程的三种方法

它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可了解任务执行情况,可取消任务的执行,还可获取任务执行的结果。Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。①Callable规定的方法是call(),而Runnable规定的方法是run().②Callable的任务执行后可返回值,而Runnable的任务是不能返回值的。③call()方法可抛出异常,而run()方法是不能抛出异常的。

2023-09-15 10:20:58 278

原创 Java中static、this、super、final用法简谈

在涉及到继承的时候,会先初始化父类的static变量,然后是子类的,依次类推。还有一种用法是定义方法中的参数为final,对于基本类型的变量,这样做并没有什么实际意义,因为基本类型的变量在调用方法时是传值的,也就是说你可以在方法中更改这个参数变量而不会影响到调用语句,然而对于对象变量,却显得很实用,因为对象变量在传递时是传递其引用,这样你在方法中对对象变量的修改也会影响到调用语句中的对象变量,当你在方法中不需要改变作为参数的对象变量时,明确使用final进行声明,会防止你无意的修改而影响到调用方法。

2023-09-15 10:19:05 63

原创 java堆栈解析

(2)在栈中查找有没有存放值为"abc"的地址,如果没有,则开辟一个存放字面值为"abc"的地址,接着创建一个新的String类的对象o,并将o的字符串值指向这个地址,而且在栈中这个地址旁边记下这个引用的对象o。上例中,当我们将str1的值改为"bcd"时,JVM发现在栈中没有存放该值的地址,便开辟了这个地址,并创建了一个新的对象,其字符串的值指向这个地址。以上两段代码说明,只要是用new()来新建对象的,都会在堆中创建,而且其字符串是单独存值的,即使与栈中的数据相同,也不会与栈中的数据共享。

2023-09-15 10:17:07 193

原创 java 中的volatile关键字

在java的多线程的内存模型中存在main memory和work memory。对于共享变量的访问,线程是先从main memory中copy一份到work memory中,操作完毕后再把work memory中的变量值写回到main memory。如果将变量声明为volatile,则可以保证变量的可见性,实现的原理也很简单粗暴,声明为volatile的不允许copy到work memory中。volatile 是java中用来解决多线程的共享访问问题的,不过它解决的是变量级别的。

2023-09-15 10:16:19 66

原创 解析static和final修饰符

原因2:当类的属性被同时被修饰为static和final的时候,他属于类的资源,那么就是类在被加载进内存的时候(也就是应用程序启动的时候)就要已经为此属性分配了内存,所以此时属性已经存在,它又被final修饰,所以必须在属性定义了以后就给其初始化值.而构造函数是在当类被实例化的时候才会执行,所以用构造函数,这时候这个属性没有被初始化.程序就会报错.而static块是类被加载的时候执行,且只执行这一次,所以在static块中可以被初始化。而你的代码里对final修饰的属性进行了修改,所以错误.

2023-09-15 10:10:44 91

原创 Java HashMap实现详解

同时,我们也可以发现,当数组长度为15的时候,hash值会与15-1(1110)进行“与”,那么 最后一位永远是0,而0001,0011,0101,1001,1011,0111,1101这几个位置永远都不能存放元素了,空间浪费相当大,更糟的是这种情况中,数组可以使用的位置比数组长度小了很多,这意味着进一步增加了碰撞的几率,减慢了查询的效率!在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。

2023-09-15 10:09:28 74

原创 string,你到底是谁?

System.String是一个功能非常强大且用途非常广泛的基类,但它不是.NET中惟一与字符串相关的类,该类专门用于存储字符串,允许对字符串进行许多操作。很久以前,成龙上演了一部《我是谁》,现在string也遭遇了相同的问题.无论在JAVA中还是.NET中它永远都是一种“明星”气质,考虑它总是要从特殊性的角度考虑,它属于基本数据类型,也是基本数据类型中唯一的引用类型。如果按照引用类型,传递的应该是地址,修改了name的值,那么myname的值应该也要做相应的修改,结果应该是”efg”,但事实与之相反。

2023-09-15 10:07:08 37

原创 安卓弹出popup之XPopup

如果用上了XPopup,动画别人帮你写。然后用一个Dialog来引用这个布局文件。Dialog要依赖 BubbleAttachPopupView。需要自己定义一个xml布局文件。还有很多弹框可以使用。如果没有这些依赖库。

2023-06-29 11:30:27 2142

原创 Android UI框架之 XUI

TextView、Button、EditText、ImageView、Spinner、Picker、Dialog、PopupWindow、ProgressBar、LoadingView、StateLayout、FlowLayout、Switch、Actionbar、TabBar、Banner、GuideView、BadgeView、MarqueeView、WebView、SearchView等一系列的组件和丰富多彩的样式主题。需要定义各种资源文件。具体的组件API使用挺多的。市面上好用的三方UI也不少。

2023-06-29 11:16:22 2189

原创 安卓安卓点击下拉菜单实现:PopMenu

PopMenu实现下拉菜单

2023-02-17 17:37:26 301 1

原创 安卓图片裁剪之Android-Image-Cropper简单使用

一个好用的图片裁剪框架

2023-02-15 10:32:34 1818 2

原创 android实现view震动效果

要实现view的震动效果,只需要对需要的view添加动画即可

2022-12-27 17:36:27 579

原创 ViewPager + Fragment + RadioButton的使用

viewPager + Fragment + radioGroup

2022-12-27 15:56:41 193

原创 通过drawable实现不一样的ProgressBar

通过drawable实现自定义颜色的进度条

2022-12-27 15:41:17 249

原创 Android 动态申请权限

安卓权限申请工具类

2022-12-21 15:04:35 550

原创 手机一些信息的获取(电池相关、versionName、屏幕相关等)

【代码】手机一些信息的获取(电池容量、电量、versionName)

2022-12-20 18:04:28 247

原创 EditText设置密码可见与不可见

输入用户密码是每一个app必备的功能。密码若需要设置可见不可见可采用如下方式:if (isChecked) { // 密码可见 edView.transformationMethod = HideReturnsTransformationMethod.getInstance()} else { // 密码不可见 edView.transformationMethod = PasswordTransformationMethod.getInstance()}// 切换密码是否可见时,e

2022-04-13 11:08:16 891

原创 Java HashMap实现详解

1. HashMap概述:HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。2. HashMap的数据结构:在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap底层就是一个数组结构,数组中的每

2022-04-02 14:31:34 2246

原创 Andriod中的内存溢出问题总结

Andriod中的内存溢出问题总结万恶的staic 尽量不要用大图片的加载course多线程多内存的影响一、 Android的内存机制 Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存,所有对象在java堆内分配空间;然而对象的释放是由垃圾回收器来完成的。C/C++中的内存机制是“谁污染,谁治理”,java的就比较人性化了,给我们请了一个专门的清洁工(GC)。  那么GC怎么能够确认某一个对象是不是已经被废弃了呢?

2022-04-02 14:11:43 520

原创 Android高效权限管理框架:EasyPermissions

Android现在将所有的权限归为了两类,一类是普通权限,一类是危险权限。对于普通权限,系统会自动帮我们进行授权,不需要手动操作。对于危险权限,必须要由用户手动进行点击授权才可以,否则程序无法完成相应的功能。下面介绍今天的主角:EasyPermissionsEasyPermissions 是一个包装库,用于在面向 Android M 或更高版本时简化基本系统权限逻辑。开始撸:首先,引入依赖: // android x: implementation 'pub.devrel:easyperm

2022-03-30 16:03:11 5212

原创 android布局优化之< merge /> 和 <ViewStub />

在activity被初始化后。执行到onCreate后, 会执行setContentView()。这个哪怕是个初学者也会知道。但这里有一个小问题:如果layout的嵌套过于复杂,会出现绘制过度或者加载变慢等问题。那就需要对layout进行优化。那么优化方式多种多样,比如约束布局 - ConstraintLayout:ConstraintLayout 是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。从 A

2022-03-30 15:08:01 2773

转载 ConstraintLayout 约束布局 实现负数布局

以前相对布局RelativeLayout可以利用layout_marginTop="-320dp"达到自己想要的效果,但是ConstraintLayout是不行的,但是我们可以利用Space达到相同的效果<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"

2022-03-29 16:02:38 489

原创 自定义一个android通用shape样式的TextView

在开发中经常遇到需要各种样式的shape定义来实现一些圆角、渐变等UI效果。所以每一次都需要自己去定义,然而这个过程会产生很多问题,比如命名规范就是一个很头疼的问题。而且文件多了以后也会增加包体积。可复用的概率又很低。所以需要一个通用样式的shape。今天他来了。。。首先,在values中定义一个xml:shape_asster.xml<?xml version="1.0" encoding="utf-8"?><resources> <declare-st

2022-03-24 10:12:03 2556

原创 移除List数组中的某一个元素

近期在开发中遇到了需要移除数组中某一个元素的业务。具体例子如下:假如有一个数组中有{1,2,3,1,1,4,5,6,1}等元素,如果需要移除掉数组中所有的元素“1”。如此。首先想到的是循环这个数组。挨个判断挨个移除。后来发现在kotlin中有可以直接使用的函数:moveIf,下面说一下用法:kotlin实现(两者是一样的):list.removeAll { x -> x in "1" }//或者list.removeIf { x -> x in "1" }END...

2022-03-21 13:54:19 2918

原创 在drawable目录下的文件中添加一张图片

应用场景如下(需要动态加载一个图片,但是只能拿到drawable目录,图片文件在mipmap中):binding.rbUnDamage.setButtonDrawable(R.drawable.draw_disabled_button)1、首先,在res下新建drawable文件夹2、新建一个资源文件。类型为:layer-list3、添加如下代码:<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="

2021-12-14 09:52:25 6358

转载 Android之官方屏幕适配:ScreenMatch

Android ScreenMatch屏幕适配是一种简单适用的适配方式,是由Android官方推出的适配方法。废话不多说直接上干活:1.首先下载安装ScreenMatch插件,Ctrl+Alt+S打开Plugins2、创建dimens.xml并存放在values目录下下载地址:dimens下载点这里3、生成values-sw384dp~values-sw1365dp :使用鼠标左键点击任意文件夹点击ok弹出Over, adapt successful提示表示生成成功,继续点击ok

2021-11-09 13:41:56 375

原创 android 调用系统下载

android直接调用系统的下载方法进行文件下载,不废话,直接上代码:首先,创建系统下载的工具类,DownloadManagerUtil.java:import android.app.DownloadManager;import android.content.Context;import android.net.Uri;import android.os.Environment;public class DownloadManagerUtil { private Con

2021-07-01 16:24:09 1799

转载 android 加载PDF

项目中用到了在线加载PDF,原本以为是一件很简单的事情,只要一个webView就可以搞定。但是最终被狠狠的打了脸。经过不懈的努力。终于发现了下面的sdk,支持本地预览和在线预览。不多说。上代码首先,添加依赖:implementation 'com.wdeo3601:pdf-view:1.0.4'注意:添加该依赖后,若要正常运行,所有module的minSdkVersion不可小于21,即 android 5.0xml引入:<com.wdeo3601.pdfview.PDFVi

2021-07-01 15:49:42 831 3

原创 配置webView加载h5页面

如下都是常用配置。直接粘贴即可 vBinding.wvSign.webChromeClient = object : WebChromeClient() { override fun onProgressChanged(view: WebView?, newProgress: Int) { if (newProgress == 100) { vBinding.progressBar.isGone

2021-06-17 14:05:37 607

原创 解决webView页面点击返回按钮直接退出Activity的问题

在webView页面中,如果点击Android手机的返回按钮,默认则会直接退出webView所在的Activity页面。但是我们有时候需要的是点击返回按钮。返回web页面的上一页。所以需要监听返回按钮解决方案如下:webView.setOnKeyListener { view, keyCode, keyEvent -> if (keyEvent.action == KeyEvent.ACTION_DOWN) { if (keyCode == KeyEven

2021-06-17 11:56:12 1469

原创 解决webView加载http请求图片不展示问题

使用webView加载图片时。如果请求方式为http,则会影响图片展示。只需要在代码中加如下代码即可:webSettings.blockNetworkImage = false //解决图片不显示 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { webSettings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW

2021-06-17 11:51:12 1006

原创 android 限制小数点后面位数及小数点前面位数(可自定义)

Android在Edittext中限制小数点后面的位数及小数点前面的位数,代码如下:java实现: private int behind = 2 //小数点后面限制位数 private int front = 3 //小数点前面限制位数 editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int star

2021-05-08 11:45:57 662

Command_Line_Tools_for_Xcode_13.3 资源下载

Command_Line_Tools_for_Xcode_13.3 资源下载

2022-03-22

ScreenMatch:dimens.xml

ScreenMatch适配所需配置文件

2021-11-09

Toast jar包

连续点击Toast值快速变化,优化体验

2016-12-09

app在线升级

是封装到工具类的,用户可根据自己业务需求在不同地方调用

2016-08-30

空空如也

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

TA关注的人

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