- 博客(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
130
原创 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
229
原创 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
240
原创 自定义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
263
1
原创 解决Chrome喔唷,出错啦的问题
今天早上Chrome浏览器自动更新了,结果下午用的时候一打开就弹出喔唷,出错啦的提示。任何网页包括设置都没法打开。开了很多网上的解决办法,大部分说好像是因为百度的一个文件导致Chrome出错,然而在我的电脑上并没有找到那个文件。我最后用了如下的办法解决了这个问题。1.右键桌面上的Chrome,切到兼容性选项卡2.点击更改所有用户的设置3.勾选以兼容模式运行这个程序,然后应用并确认。...
2019-12-20 15:40:55
911
原创 用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
1367
原创 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
338
原创 Android AnyPref快速存储
1.首先在根目录allprojects { repositories { maven { url &quot;https://jitpack.io&quot; } }}2.引入依赖implementation 'com.github.NashLegend:AnyPref:1.2.6'3.新建Bean类@PrefModel(&quot;usermessage&
2018-09-06 11:24:57
379
原创 Android EventBus实现方便的消息传递
什么是EventBusEventBus能够简化各组件间的通信,让我们的代码书写变得简单,能有效的分离事件发送方和接收方(也就是解耦的意思),能避免复杂和容易出错的依赖性和生命周期问题。EventBus的三要素Event 事件。它可以是任意类型。Subscriber 事件订阅者。在EventBus3.0之前我们必须定义以onEvent开头的那几个方法,分别是onEvent、onEve...
2018-08-31 09:41:21
1684
转载 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
171
原创 android AIDL实现进程聊天的小程序
aidl全称是Android Interface Definition Language,也就是Android接口定义语言。它用于进程间通信。每个进程都有它独立的内存空间,不同进程想要相互直接访问内存是不行的,aidl就是为了实现进程间相互访问而创造的。效果图使用aidl并不是支持任何类型的,我们首先应该知道aidl支持哪些数据类型,对其一开始不支持的数据类型我们需要做...
2018-08-22 15:11:15
376
原创 android Spinner实现下拉框
Spinner是android的一种控件,用它我们可以实现下拉框。我们先来看一下效果图这是一个很简单的功能,上面一个TextView,下面一个Spinner,TextView用于显示Spinner选择的选项。下面我们就来看一下实现吧。实现首先,我们先在xml文件中将spinner写出<?xml version="1.0" encoding="utf-8"?&g...
2018-08-21 15:14:23
333
转载 Android中的WeakReference 弱引用
WeakReference 弱引用定义:弱引用,与强引用(我们常见的引用方式)相对;特点是:GC在回收时会忽略掉弱引用对象(忽略掉这种引用关系),即:就算弱引用指向了某个对象,但只要该对象没有被强引用指向,该对象也会被GC检查时回收掉。强引用实例自然不会被GC回收!如何引出弱引用?弱引用的实际用途是什么?什么是内存泄漏?Java使用有向图机制,通过GC自动检查内存中的对象;如果GC...
2018-08-21 14:21:44
359
原创 android CountdownTimer实现倒计时
CountdownTimer的构造函数有两个参数public CountDownTimer(long millisInFuture, long countDownInterval) { throw new RuntimeException("Stub!");}millisInFuture是倒计时的总时间,countDownInterval是倒计时的间隔,两个参数的单位都是毫秒...
2018-08-20 19:53:09
276
转载 android SpannableString打造多彩的文本展示效果
SpannableString是一种字符串类型,TextView可以直接设置并显示它,但不同于String的是它可以设置文本各种不同的显示效果,而且还可以只改变你规定的区间内部分文本显示的效果setSpan(Object what, int start, int end, int flags)方法需要用户输入四个参数,what表示设置的格式是什么,可以是前景色、背景色也可以是可点击的文本等等,...
2018-08-20 16:35:46
151
原创 android ViewPager+TabLayout+Fragment实现左右滑动切换页面
ViewPager类似于我们的LinearLayout,RelativeLayout这些布局,需要在其中放我们想要显示的东西。我们还需要Adapter来为其提供数据。使用1.在xml文件中&amp;amp;lt;android.support.v4.view.ViewPager android:layout_width=&amp;quot;match_parent&amp;quot; android:layout_hei...
2018-08-20 11:14:55
6855
7
原创 android基于MVP,Retrofit2,RxJava2的天气app
最近学习了MVP,Retrofit2,RxJava2框架,感觉收获颇多,于是决定利用所学知识干一番大事业 ps:对这三种框架还不太清楚的童鞋可以看我之前的博客 传送门: MVP Retrofit2 RxJava2效果图话不多说,先上图 勉勉强强能看过去吧(●ˇ∀ˇ●)那么最重要的来了那就是实现首先,我这里用的后台api接口是和风天气的接口...
2018-08-14 14:53:52
1109
原创 android实现回车键的监听
1.布局文件中的edittext:设置属性android:singleLine="true"android:imeOptions="actionSearch"2.java文件中editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override ...
2018-08-14 14:02:36
5062
原创 android Matrix
Matrix是一个矩阵,主要功能是坐标映射,数值转换。它看起来大概是下面这样:Matrix基本原理Matrix 是一个矩阵,最根本的作用就是坐标转换,基本变换有4种: 平移(Translate) 缩放(Scale) 旋转(Rotate) 错切(Skew) 方法详解无参构造Matrix matrix = new Matrix();通过这种方法构造出...
2018-08-10 15:54:54
153
转载 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
6365
原创 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
1232
原创 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
1178
原创 ViewModel
ViewModel是用来管理UI相关的数据的,同时ViewModel还可以用来负责UI组件间的通信。使用1.创建 我们在获取 ViewModel 的时候绝对不能直接使用 new 关键字去创建,需要使用 ViewModelProviders 去使用系统提供的反射方法去创建我们想要的 ViewModel...
2018-07-30 15:51:55
140
原创 LiveData
不管LiveData是与组件的生命周期相关联,还是其采用观察者模式检测数值的变化,它有什么吸引力让我们使用它呢?避免内存泄漏: 由于Observers绑定本身的Lifecycle对象, 当Lifecycle被销毁时, 其自动被移除。Activity处于onstop状态时, 不会导致应用程序意外崩溃: 当观察者的的生命周期处于非活动状态(比如Activity处于后台堆栈)时, Observ...
2018-07-30 14:47:10
598
原创 Lifecycle
下面是google官方提供的app开发框架图 这里学习一下Lifecycle Lifecycle 是android 官方推出的官方架构中的其中之一,他是生命周期感知的,即他能够监听Activity和Fragment的生命周期,并且回调相应的方法,同时他能够实时的获取当前Activity和fragment的状态。使用1.引入依赖//运行时 implementation "and...
2018-07-30 11:01:34
980
原创 RxJava2
1.引入依赖implementation "io.reactivex.rxjava2:rxjava:2.1.17"implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'2.创建ObservableObservable<Integer> observable = Observable.create(new Obse...
2018-07-28 16:10:34
877
1
原创 Retrofit2
网络请求必不可少的库 使用1.引入依赖implementation 'com.squareup.retrofit2:retrofit:2.4.0'implementation 'com.squareup.retrofit2:converter-gson:2.4.0'//两个版本号要相同2.添加网络权限<uses-permission android:name="an...
2018-07-27 14:52:30
361
原创 MVP
MVP是一种架构,通俗的说这是一种代码规范,为什么要用这种规范呢,很简单,因为它方便,逻辑清晰。何以见得呢,代码最有说服力。现在我想实现一个简单的登录demo,效果如下图: 很简单,如果用传统的方式写的话,那么代码是这样的:public class Main extends AppCompatActivity { private EditText etUsername;...
2018-07-26 16:12:19
259
原创 WorkManager
WorkManager用于管理那些后台中定时执行的任务,即使你的应用没启动或你的设备重启。 它提供了从其他API(例如JobScheduler,Firebase.JobDispatcher,AlarmManager和Services)中获得的功能,而无需研究哪种API可用于您的设备或API。使用步骤: 1.引入依赖dependencies { ... def work_...
2018-07-25 17:59:32
447
原创 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
963
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人