自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 通知工具类

package com.les.demo.notificationimport android.app.NotificationChannelimport android.app.NotificationManagerimport android.app.PendingIntentimport android.content.Contextimport android.content.Context.NOTIFICATION_SERVICEimport android.content.Inte

2021-07-04 16:52:11 102

原创 android 用java编写gradle插件实现修改apk名称

public class HelloPlugin implements Plugin<Project> { @Override public void apply(Project target) {// target.getTasks().register("greeting", new Action<Task>() {// @Override// public void execute(Task

2021-03-23 19:08:05 201

原创 Android自定义播放按钮,外圈实现播放进度效果

大概样子就是这个样的,动图太麻烦就不弄了,直接上代码(注:代码里控件的大小都是写死的定值,没弄成xml中可以设置的,需要设置的朋友自己麻烦搞下吧)```javaclass PlayView : View { private lateinit var bgPaint: Paint//背景 private lateinit var statusPaint: Paint//按钮状态 private lateinit var progressPaint: Paint//播放进度 .

2021-01-25 14:36:43 212

原创 AndroidStudio Git提交代码报错LF would be replaced by CRLF的解决方案

这里把LF改成CRLF

2020-08-20 13:50:45 542

原创 自定义view------横幅通知(滑动超过一定距离才会消失)

package com.les.study.widget;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.LayoutInflater;import android.view.MotionEvent;import android.view.View;import android.widget.FrameLayout;impo

2020-08-19 19:40:21 227 1

原创 解决Chrome喔唷,出错啦的问题

今天早上Chrome浏览器自动更新了,结果下午用的时候一打开就弹出喔唷,出错啦的提示。任何网页包括设置都没法打开。开了很多网上的解决办法,大部分说好像是因为百度的一个文件导致Chrome出错,然而在我的电脑上并没有找到那个文件。我最后用了如下的办法解决了这个问题。1.右键桌面上的Chrome,切到兼容性选项卡2.点击更改所有用户的设置3.勾选以兼容模式运行这个程序,然后应用并确认。...

2019-12-20 15:40:55 865

原创 用RxJava2的方式实现点击事件

为防止用户在数据加载的时候接连点击按钮造成数据混乱,我们可以用RxJava的形式实现按钮的点击事件,使用户在你规定的时间内再次点击按钮无效。实现1.首先引入RxJava2implementation "io.reactivex.rxjava2:rxjava:2.1.17"implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'2.创建一...

2018-10-25 10:18:58 1339

原创 android弹出窗口PopupWindow学习

PopupWindow,顾名思义就是弹出窗口,下面简单介绍一下它的使用。1.构造方法常用的有这么几种1.public PopupWindow()2.public PopupWindow(Context context)3.public PopupWindow(View contentView)4.public PopupWindow(View contentView, int...

2018-09-13 15:47:35 318

原创 Android AnyPref快速存储

1.首先在根目录allprojects { repositories { maven { url &amp;quot;https://jitpack.io&amp;quot; } }}2.引入依赖implementation 'com.github.NashLegend:AnyPref:1.2.6'3.新建Bean类@PrefModel(&amp;quot;usermessage&amp

2018-09-06 11:24:57 366

原创 Android EventBus实现方便的消息传递

什么是EventBusEventBus能够简化各组件间的通信,让我们的代码书写变得简单,能有效的分离事件发送方和接收方(也就是解耦的意思),能避免复杂和容易出错的依赖性和生命周期问题。EventBus的三要素Event 事件。它可以是任意类型。Subscriber 事件订阅者。在EventBus3.0之前我们必须定义以onEvent开头的那几个方法,分别是onEvent、onEve...

2018-08-31 09:41:21 1667

转载 Android webview

1.WebView的常见方法1.1加载url //方式1. 加载一个网页: webView.loadUrl("http://www.google.com/"); //方式2:加载apk包中的html页面 webView.loadUrl("file:///android_asset/test.html"); //方式3:加载手机本地的html页面 webVie...

2018-08-28 11:30:27 153

转载 android WebView笔记

WebView常用方法总结

2018-08-23 14:30:56 113

原创 android AIDL实现进程聊天的小程序

aidl全称是Android Interface Definition Language,也就是Android接口定义语言。它用于进程间通信。每个进程都有它独立的内存空间,不同进程想要相互直接访问内存是不行的,aidl就是为了实现进程间相互访问而创造的。效果图使用aidl并不是支持任何类型的,我们首先应该知道aidl支持哪些数据类型,对其一开始不支持的数据类型我们需要做...

2018-08-22 15:11:15 355

原创 android Spinner实现下拉框

Spinner是android的一种控件,用它我们可以实现下拉框。我们先来看一下效果图这是一个很简单的功能,上面一个TextView,下面一个Spinner,TextView用于显示Spinner选择的选项。下面我们就来看一下实现吧。实现首先,我们先在xml文件中将spinner写出&lt;?xml version="1.0" encoding="utf-8"?&g...

2018-08-21 15:14:23 315

转载 Android中的WeakReference 弱引用

WeakReference 弱引用定义:弱引用,与强引用(我们常见的引用方式)相对;特点是:GC在回收时会忽略掉弱引用对象(忽略掉这种引用关系),即:就算弱引用指向了某个对象,但只要该对象没有被强引用指向,该对象也会被GC检查时回收掉。强引用实例自然不会被GC回收!如何引出弱引用?弱引用的实际用途是什么?什么是内存泄漏?Java使用有向图机制,通过GC自动检查内存中的对象;如果GC...

2018-08-21 14:21:44 349

原创 android CountdownTimer实现倒计时

CountdownTimer的构造函数有两个参数public CountDownTimer(long millisInFuture, long countDownInterval) { throw new RuntimeException("Stub!");}millisInFuture是倒计时的总时间,countDownInterval是倒计时的间隔,两个参数的单位都是毫秒...

2018-08-20 19:53:09 267

转载 android SpannableString打造多彩的文本展示效果

SpannableString是一种字符串类型,TextView可以直接设置并显示它,但不同于String的是它可以设置文本各种不同的显示效果,而且还可以只改变你规定的区间内部分文本显示的效果setSpan(Object what, int start, int end, int flags)方法需要用户输入四个参数,what表示设置的格式是什么,可以是前景色、背景色也可以是可点击的文本等等,...

2018-08-20 16:35:46 140

原创 android ViewPager+TabLayout+Fragment实现左右滑动切换页面

ViewPager类似于我们的LinearLayout,RelativeLayout这些布局,需要在其中放我们想要显示的东西。我们还需要Adapter来为其提供数据。使用1.在xml文件中&amp;amp;amp;lt;android.support.v4.view.ViewPager android:layout_width=&amp;amp;quot;match_parent&amp;amp;quot; android:layout_hei...

2018-08-20 11:14:55 6787 7

原创 android基于MVP,Retrofit2,RxJava2的天气app

最近学习了MVP,Retrofit2,RxJava2框架,感觉收获颇多,于是决定利用所学知识干一番大事业 ps:对这三种框架还不太清楚的童鞋可以看我之前的博客 传送门: MVP Retrofit2 RxJava2效果图话不多说,先上图 勉勉强强能看过去吧(●ˇ∀ˇ●)那么最重要的来了那就是实现首先,我这里用的后台api接口是和风天气的接口...

2018-08-14 14:53:52 1087

原创 android实现回车键的监听

1.布局文件中的edittext:设置属性android:singleLine="true"android:imeOptions="actionSearch"2.java文件中editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override ...

2018-08-14 14:02:36 5030

原创 android Matrix

Matrix是一个矩阵,主要功能是坐标映射,数值转换。它看起来大概是下面这样:Matrix基本原理Matrix 是一个矩阵,最根本的作用就是坐标转换,基本变换有4种: 平移(Translate) 缩放(Scale) 旋转(Rotate) 错切(Skew) 方法详解无参构造Matrix matrix = new Matrix();通过这种方法构造出...

2018-08-10 15:54:54 134

转载 android Paint类

1.这个类可以画几何图形,文本和bitmap。Paint的style,共有3种Paint.Style.FILL:填充内部 Paint.Style.FILL_AND_STROKE :填充内部和描边 Paint.Style.STROKE :描边Paint的Cap,也有3种类型Paint的Join,也有3种类型Paint的Align,也有三种类型OK,Pain...

2018-08-10 11:30:14 6332

原创 android Rect类

1.new Rect(150, 75, 260, 120) 构造方法的四个参数代表着left,top,right,bottom left : 矩形左边的X坐标 150 top: 矩形顶部的Y坐标 75 right : 矩形右边的X坐标 260 bottom: 矩形底部的Y坐标 120 说白了就是左上角的坐标是(150,75),右下角的坐标是(260,120...

2018-08-10 11:14:53 1182

原创 android踩过的坑(持续更新)

1.一个Message只能使用一次 2.对于String类型,比较时要用equals(),不要用==

2018-08-01 09:19:19 229 3

原创 Room

1.引入依赖implementation "android.arch.persistence.room:runtime:1.0.0"annotationProcessor "android.arch.persistence.room:compiler:1.0.0"2.Room三大组件Database: 用这个组件创建一个数据库。注解定义了一系列entities,并且类中提供一系...

2018-07-31 16:16:56 1140

原创 ViewModel

ViewModel是用来管理UI相关的数据的,同时ViewModel还可以用来负责UI组件间的通信。使用1.创建 我们在获取 ViewModel 的时候绝对不能直接使用 new 关键字去创建,需要使用 ViewModelProviders 去使用系统提供的反射方法去创建我们想要的 ViewModel...

2018-07-30 15:51:55 104

原创 LiveData

不管LiveData是与组件的生命周期相关联,还是其采用观察者模式检测数值的变化,它有什么吸引力让我们使用它呢?避免内存泄漏: 由于Observers绑定本身的Lifecycle对象, 当Lifecycle被销毁时, 其自动被移除。Activity处于onstop状态时, 不会导致应用程序意外崩溃: 当观察者的的生命周期处于非活动状态(比如Activity处于后台堆栈)时, Observ...

2018-07-30 14:47:10 568

原创 Lifecycle

下面是google官方提供的app开发框架图 这里学习一下Lifecycle Lifecycle 是android 官方推出的官方架构中的其中之一,他是生命周期感知的,即他能够监听Activity和Fragment的生命周期,并且回调相应的方法,同时他能够实时的获取当前Activity和fragment的状态。使用1.引入依赖//运行时 implementation "and...

2018-07-30 11:01:34 968

原创 RxJava2

1.引入依赖implementation "io.reactivex.rxjava2:rxjava:2.1.17"implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'2.创建ObservableObservable&lt;Integer&gt; observable = Observable.create(new Obse...

2018-07-28 16:10:34 823 1

原创 Retrofit2

网络请求必不可少的库 使用1.引入依赖implementation 'com.squareup.retrofit2:retrofit:2.4.0'implementation 'com.squareup.retrofit2:converter-gson:2.4.0'//两个版本号要相同2.添加网络权限&lt;uses-permission android:name="an...

2018-07-27 14:52:30 331

原创 MVP

MVP是一种架构,通俗的说这是一种代码规范,为什么要用这种规范呢,很简单,因为它方便,逻辑清晰。何以见得呢,代码最有说服力。现在我想实现一个简单的登录demo,效果如下图: 很简单,如果用传统的方式写的话,那么代码是这样的:public class Main extends AppCompatActivity { private EditText etUsername;...

2018-07-26 16:12:19 234

原创 WorkManager

WorkManager用于管理那些后台中定时执行的任务,即使你的应用没启动或你的设备重启。 它提供了从其他API(例如JobScheduler,Firebase.JobDispatcher,AlarmManager和Services)中获得的功能,而无需研究哪种API可用于您的设备或API。使用步骤: 1.引入依赖dependencies { ... def work_...

2018-07-25 17:59:32 430

原创 Android-job

android-job是一个可以在后台进行延时处理的库。即使你没有操作,你的应用也可以根据你的设置定期执行任务使用 1.在build.gradle中引入dependencies { ... implementation 'com.evernote:android-job:1.2.6'}2.新建类继承自Job,重写其onRunJob方法,并在其中编写你想要执行的任...

2018-07-25 16:32:46 933

空空如也

空空如也

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

TA关注的人

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