- 博客(88)
- 资源 (47)
- 收藏
- 关注
原创 Android 编译错误记录
android 编译器 (1.8.0_212) 中出现异常错误:编译器 (1.8.0_121) 中出现异常错误。如果在 Bug Database (http://bugs.java.com) 中没有找到该错误, 请通过 Java Bug 报告页 (http://bugreport.java.com) 建立该 Java 编译器 Bug。请在报告中附上您的程序和以下诊断信息。谢谢。java.lang.AssertionError: annotationType(): unrecognized Attribu
2022-04-21 11:10:28
1198
原创 String 截取字符串最后一个字符,后边的值
记录一下String中截取字符串最后一个字符,后边的值一、String.substring()此方法用于截取字符串二、截取字符串最后一个字符,后边的值示例:/** * 截取最后一个“/”后边的值 */ public void getVioceName(String path) { path = path.replace(".mp3", ""); //取到最后一个“/”的位置 int index = path.lastInd
2022-04-13 15:43:05
13166
原创 Android 编译错误记录
记录下在开发过程中遇到的一个问题一、问题描述 build项目时报错:Could not find SevenZip-osx-aarch_64.exe (com.tencent.mm:SevenZip:1.2.19).二、解决方案1.可以把use7zip =false2.删除sevenzip
2022-03-11 17:39:11
5389
原创 Android 编译错误记录
一、问题描述 build项目时报错:greendao Pb(324) The type java.lang.Object cannot be resolved.greendao的Entity注解发生错误二、解决方案将org.greenrobot:greendao-gradle-plugin:3.2.2升级到3.3.0。org.greenrobot:greendao-gradle-plugin:3.3.0...
2022-03-11 17:16:14
2859
原创 Android Studio遇到的问题及解决方案
一、问题描述 build项目时报错:Connect to maven.google.com:443 [maven.google.com/216.58.200.238] failed: connect timed out二、解决方案 将build.gradle文件中如下两处改为如下url: 即将https://maven.google.com改为:https://dl.google.com/dl/android/maven2/...
2021-08-11 14:15:57
550
原创 Android 使用Kotlin来实现加边框的文本
本篇文章讲的是使用Kotlin来实现加边框的文本。按照惯例,我们先来看看效果图下面就是我们的代码实现1、BorderTextView中重写onDraw方法package co.per.bordertextviewimport android.content.Contextimport android.graphics.Canvasimport android.graphics.Colorimport android.graphics.Paintimport android.util.A
2021-07-28 17:58:30
863
原创 Android 使用Kotlin来实现自定义View之雷达图
本篇文章讲的是Kotlin 自定义view之实现雷达图。按照惯例,我们先来看看效果图一、先总结下自定义View的步骤:1、自定义View的属性2、在View的构造方法中获得我们自定义的属性3、重写onMesure4、重写onDraw其中onMesure方法不一定要重写,但大部分情况下还是需要重写的二、View 的几个构造函数1、constructor(mContext: Context)—>java代码直接new一个RulerView实例的时候,会调用这个只有一个参数的构造函数;
2021-07-28 17:16:35
1185
原创 Android 使用Kotlin来实现任务完成提醒效果
这篇文章比较简单,主要是记录一下任务完成提醒效果。按照惯例,先来看看效果图而、下面就是我们的代码实现1、布局文件<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android
2021-07-23 14:37:27
451
1
原创 Android 使用Kotlin来实现水波纹的自定义View
这篇文章比较简单,主要是记录一下自定义View实现水波纹。按照惯例,先来看看效果图一、先总结下自定义View的步骤:1、自定义View的属性2、在View的构造方法中获得我们自定义的属性3、重写onMesure4、重写onDraw其中onMesure方法不一定要重写,但大部分情况下还是需要重写的二、View 的几个构造函数1、constructor(mContext: Context)—>java代码直接new一个PPScaleRippleView实例的时候,会调用这个只有一个参
2021-07-22 11:44:17
494
1
原创 Flutter 回退到指定版本:1.22.6
1. 首先去到GitHub上找到你想要回退的版本 :flutter github2.点击圈中的那一段字符串,跳转查看详情:复制那一长串。这就是你想要的版本啦。3.进入到你的flutter安装目录类似这种 /Users/Desktop/flutterSdk/flutter/,然后运行下面git reset --hard 9b2d32b605630f28625709ebd9d78ab3016b2bf6解释一下9b2d32b605630f28625709ebd9d78ab3016b2bf6
2021-07-13 18:01:08
1002
2
原创 Android Studio 可以正常编译但是代码爆红解决方法
这两天配置Flutter环境,然后不知道设置了什么,Android Studio的代码爆红,但是代码可以正常编译。吓得我赶紧rebuild一下,想看看是不是哪儿的代码被我误删了,结果rebuild啥问题都没有,但是代码依旧爆红。在尝试了clean、rebuild,invalidate cache / restart之后,依然还是爆红。最终在stackoverflow上找到了相同的问题,解决方法...
2020-02-14 18:23:51
2406
3
原创 Android 仿Keep,探索向上滑动时PopupWindow向右退出消失,向下移动时PopupWindow向左推出出现
这篇文章主要是仿Keep,通过监听ScrollView滚动事件和滚动状态(开始、停止)来实现向上滑动时PopupWindow向右退出消失,向下移动时PopupWindow向左推出出现的功能,感觉很有趣,于是想着自己动手也实现这样一个功能,和往常一样,主要是想总结一下我在学习过程中的一些笔记以及需要注意的地方。现在我们先来看看Keep的效果图:(待上传)再来看一下我们最终效果图:(待上传)...
2019-09-26 19:10:06
1387
原创 Android Animation之TranslateAnimation(平移动画)
Android的View Animation(视图动画)中的Tween Animation效果,Tween Animation分为4种动画效果,分别是:alpha (透明变化) translate(位置移动) scale(缩放) rotate(旋转),而本篇文章说的是translate(位置移动)的效果。Translate动画是非常好理解,就是定义一个开始的位置和一个结束位置,定义移动时间,然后...
2019-09-23 14:18:55
8113
原创 Android 软键盘弹出时,EditText固定在键盘上方
OnGlobalLayoutListener 是ViewTreeObserver的内部类,当一个视图树的布局发生改变时,可以被ViewTreeObserver监听到,这是一个注册监听视图树的观察者(observer),在视图树的全局事件改变时得到通知。ViewTreeObserver不能直接实例化,而是通过getViewTreeObserver()获得。除了OnGlobalLayoutList...
2019-09-20 10:59:35
2847
3
原创 Android Studio不自动代码提示问题解决
在编写代码时,代码不自动提示,而代码自动提示的设置正常,经过一番研究后发现问题原因在于节能模式的开启,具体解决方式如下:关闭节能模式如上图所示,将Power Save Mode前面的对勾去掉,则完成节能模式的关闭,代码提示功能正常。好了,本篇文章就这样了,存在不到位的地方还望指导,感谢!...
2019-09-11 14:27:16
9627
3
原创 Android 使用MediaPlayer播放本地视频
MediaPlayer可以播放视频和音频,并且它支持本地和网络文件的播放。下面讲一下使用MediaPlayer播放本地视频,如果觉得MediaPlayer使用起来麻烦,也可以选择VideoView播放视频。MainActivity.java 代码如下:package per.juan.playvideodome;import androidx.appcompat.app.AppCompat...
2019-09-04 17:36:32
10892
1
原创 Android Activity内嵌Fragment,当Activity recreate时Fragment被添加多次,造成界面重叠
由于某些原因,例如旋转屏幕,内存不足时,造成Activity被destroy() ,或者切换语言环境时,我们recreate()该Activity。这时,如果在该Activity的onCreate中未区分是create 还是recreate就add Fragment,则会再次add一次该Fragment,造成该Activity中会存在多个相同的Fragment.而导致界面重叠的情况。这种情况下,我...
2019-09-03 18:03:18
3390
原创 Android 搜索结果关键字动态匹配筛选变色效果且高亮显示
分享matcherSearchText方法,返回值是SpannableString,也就是经过我们经过变色处理的文字。主要使用matcher.find()方法找到所有匹配的关键字,按照惯例我们看下效果图下面就是matcherSearchText方法啦 /** * 正则匹配 返回值是一个SpannableString 即经过变色处理的数据 */ private Sp...
2019-08-13 14:45:01
1955
1
原创 Android 仿微博,探索使用ShortcutManager添加应用程序的快捷方式
在Android 7.1(API 25)之后添加的新功能,应用快捷方式。ShortcutManager管理一个应用程序的快捷方式。只要在长按应用图标的情况下,在应用图标上显示的快捷方式,用户可以快速访问任意一个Activity。现在市场上已经是有很多应用增加了这项功能,如:微博、美团、支付宝、知乎、印象笔记等。按照惯例,我们先看看效果图:一、快捷方式的特点(1)静态方式(2)动态方式二、...
2019-07-09 19:41:12
1018
原创 Android CoordinatorLayout打造酷炫的顶部栏
CoordinatorLayout常常与AppBarLayout和CollapsingToolbarLayout一起使用,用于打造各种炫酷效果的顶部栏。之前写过一篇Android 实现酷炫的顶部栏,不过要注意的是这次我们用到Androidx,原因是Google 发布了 Android support library 28,同时也发布了 androidx 1.0.0 第一个正式版本,然后支持库的 “...
2019-07-08 17:26:21
12865
2
原创 RxJava 理解Backpressure并解决异常 rx.exceptions.MissingBackpressureException
开门见山,下面我们先用代码演示一下这种崩溃的场景:private Subscription subscribe; /** * 间隔时间1ms发送一次 */ private void start() { if (subscribe == null || subscribe.isUnsubscribed()) { //被...
2018-07-27 17:00:19
2748
原创 Android 扫一扫,绘制指定区域透明区域
一、概述 在实现扫一扫的功能的时候,我们需要绘制一个中间为透明的扫码框,其余部分为半透明。通常情况下,例如微信或者支付宝的扫码框都是矩形的,如果中间的扫码框是一个矩形,那么布局是很简单的,可是如果扫码框是一个圆角矩形,或者圆形等情况怎么办呢?这篇文章主要是记录绘制一个中间透明带圆角的矩形。按照惯例,我们先来看看效果图 : 二、按照流程我们就开始来看看代码啦 1、CustomDr...
2018-07-22 21:38:54
3531
原创 Android 自定义可展开的ExpandTextView
一、概述 可折叠的textview是一个很常见的功能,相信大家都在微信朋友圈体验过这种场景:朋友发的笑话都只有半截,下面是一片白色,你要展开全文之后才能知道最后结果。 其实这也不是什么高大上的东西,按照惯例,我们先来看看效果图 : 二、按照流程我们就开始来看看代码啦 1、ExpandTextView:package per.lijuan.expandtextviewdome;...
2018-07-01 12:46:52
4130
2
原创 Android 自定义View实现环形带刻度颜色渐变的进度条
上次写了一篇Android 自定义View实现环形带刻度的进度条,这篇文章就简单了,只是在原来的基础上加一个颜色渐变。 按照惯例,我们先来看看效果图 一、概述 1、相比于上篇文章,这里我们的颜色渐变主要是用到Shader类,通过Paint.setShader(shader)方法为画笔Paint设置shader,这样就可以绘制出多彩的图形。那么Shader是什么呢? Shader类是A...
2018-07-01 11:19:28
4318
原创 Android ViewPager的简单使用
很久以前写过一篇Android 仿美团网,探索使用ViewPager+GridView实现左右滑动查看更多分类的功能,本篇文章简单一点,也是说ViewPager。有这么一个场景,在同一个Activity中,我们需要通过滑动来展示不同的布局界面,而ViewPager就是由于若干个不同的布局界面组成的。按照惯例,我们先来看看效果图 接下来我们来看看具体的代码实现: 1、在布局中加入View...
2018-06-30 12:01:07
4255
1
原创 Android 自定义View实现环形带刻度的进度条
本篇文章讲的是自定义View实现环形带刻度的进度条。和往常一样,主要还是想总结一下自定义View实现环形带刻度的进度条的开发过程以及一些需要注意的地方。 按照惯例,我们先来看看效果图 一、我们如何来实现这样一个环形刻度进度条: 首先,需要绘制一个灰色的环形刻度尺底图,来作为未填充时的进度条; 然后,根据传入的当前进度值,绘制填充时的进度圆弧; 其次,根据进度值绘制文字提示; 最后...
2018-06-19 23:36:42
5846
原创 Android 6.0动态权限申请
6.0权限的基本知识,以下是需要单独申请的权限,共分为9组,每组只要有一个权限申请成功了,就默认整组权限都可以使用了。 group:android.permission-group.CONTACTS permission:android.permission.WRITE_CONTACTS permission:android.permission.GET_ACCOUNTS...
2018-06-10 14:28:17
569
转载 Android字符串+数字变量方法之%1$s、%1$d的用法
(1)%n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格(2)%n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格 (3)%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.001.整型 比如:“他今年XX岁了”,这个具体XX岁可能需要从服务端取的,那我们可以...
2018-05-28 17:01:03
5893
2
原创 Android Kotlin 将函数作为参数传递
Kotlin支持函数作为参数传递,无需构建对象来包装函数。1、调用一个无返回的函数作为参数传递为:方法名()-&amp;gt; Unitclass MainActivity : AppCompatActivity() { private val TAG:String = &quot;MainActivity.kt&quot; override fun onCreate(savedInstanceSt...
2018-05-27 22:58:05
4366
原创 Android kotlin静态属性、静态方法
Kotlin类不支持静态方法和成员,由于Kotlin支持全局函数和变量,因此我们可以直接使用全局函数和变量来代替类中静态方法和静态成员变量。不过还有一个问题没解决,如果要使用类中的这些全局函数和变量,该如何处理呢? →这就要用到Kotlin推出的一个有趣的语法糖:Objects。那么Objects能取代静态类成员吗? →某种程度上,Objects可以解决由于没有static而造成的麻烦下面...
2018-05-27 20:15:34
12280
1
原创 Android Paging Library 基于RecyclerView的分页加载框架
在2018年5月9日的谷歌开发者大会(Google I/O 2018) 中提出在去年发布的广受欢迎的架构组件上,谷歌进一步改进并推出了Jetpack. Android Jetpack 能帮助我们加快应用开发速度,处理类似后台任务、UI 导航以及生命周期管理之类的活动,免去了编写样板代码的麻烦,专注提升应用体验。其中发布的新版 Android Jetpack 组件包括以下 4 个部分:WorkMa...
2018-05-24 11:58:39
10254
4
原创 Kotlin 自定义View之实现标尺控件(选择身高、体重等)
本篇文章讲的是Kotlin 自定义view之实现标尺控件Ruler,以选择身高、体重等。开发中,当我们需要获取用户的身高和体重等信息时,如果直接让他们输入,显然体验不够好。像类似于唯品会、好轻等APP都是使用了类似于刻度尺的控件让用户滑动选择身高体重,觉得很棒的。网上已有人使用Java语言实现这样的功能,但不影响我对其的学习。和往常一样,主要还是想总结一下自定义view之实现标尺控件的开发过程以及...
2018-05-13 11:41:18
2864
原创 Android Zip解压缩工具类
package com.example.zip.commons.utils;import android.util.Log;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.util.ArrayLis
2017-06-12 14:33:15
10800
1
原创 Android RxJava 创建操作符Interval
Interval操作符:用于创建Observable,跟TimerTask类似,用于周期性发送信息,是一个可以指定线程的TimerTask首先添加类库 // RxAndroid compile 'io.reactivex:rxandroid:1.2.1' // RxJava compile 'io.reactivex:rxjava:1.2.4'(1) 间隔时间3秒发送一
2017-06-10 17:32:55
3764
原创 Android RxJava 创建操作符Timer
之前有写过Android实现倒计时之使用CountDownTimer,除了CountDownTimer,handler也可以实现 mHandler.sendEmptyMessageDelayed(1, 10*1000); private Handler mHandler = new Handler() { @Override public void ha
2017-06-09 10:35:04
1187
原创 Android RxBus的使用
RxBus的核心功能是基于Rxjava的,在RxJava中有个Subject类,它继承Observable类,同时实现了Observer接口,因此Subject可以同时担当订阅者和被订阅者的角色,这里我们使用Subject的子类PublishSubject来创建一个Subject对象(PublishSubject只有被订阅后才会把接收到的事件立刻发送给订阅者),在需要接收事件的地方,订阅该Subje
2017-06-08 12:34:11
3727
原创 Android 使用SeekBar时动态显示进度且随SeekBar一起移动
好久没有更新博客了!在滑动SeekBar的时候,要同时显示进度,而且通常要求最小值比0小,按照惯例,先看看效果图: 一、自定义控件 用于在SeekBar上方,跟随SeekBar一块移动的控件显示进度package la.trytry.seekbar;import android.content.Context;import android.util.Attribu
2017-05-31 23:04:28
16472
原创 Android 仿今日头条的视频播放控件(几行代码快速实现)
前段时间由于项目需要用到类似于今日头条的视频播放器,实现在线播放,边缓存边播放,当然也可以播放本地文件,如下图: 这里我推荐大家使用的是jiecaovideoplayer开源库,这个库的播放引擎是ijkplayer,它调用ffmpeg, 原项目GitHub地址:https://github.com/lipangit/JieCaoVideoPlayer 一、项目引入: 1、添加类库compi
2016-12-04 16:46:20
16094
原创 Android 自定义Dialog的简单实现
感觉好像已经很久没更新博客了,前段时间主要是忙于新工作的事情,现在我又可以抽出时间来写写博客了,今天分享一篇自定义Dialog的简单实现一、前言 现在很多App的提示对话框都非常个性化,我们早已不再满足于使用系统的对话框样式,一般而言,我们会根据自家的App的主题,设计出相对应风格的Dialog,今天我就给大家分享一篇自定义的Dialog,主要的功能有:设置标题以及标题字体的颜色设置内容以及内
2016-11-29 21:38:40
1496
原创 android:windowSoftInputMode属性
android:windowSoftInputMode用于设置当前activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。 这个属性能影响两件事情: 【一】当有焦点产生时,软键盘是隐藏还是显示 【二】是否减少活动主窗口大小以便腾出空间放软键盘 它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。在任
2016-09-30 18:32:10
2452
Android 仿今日头条的视频播放控件(几行代码快速实现)
2016-12-04
Android 自定义View之边缘凹凸的优惠券效果
2016-09-27
Android 仿美团网,探索利用ViewPager+GridView实现左右滑动查看更多分类的功能
2016-09-14
Android 探索BottomSheet的使用
2016-09-08
Android Design新控件之TabLaout(二),仿微信实现App底部Tab布局
2016-08-26
Android Design新控件之TabLaout,分分钟打造一个滑动标签页
2016-08-25
Android 自定义ViewGroup之实现FlowLayout-标签流容器
2016-06-16
Android 网络通信框架Volley的二次封装
2016-04-02
Android AsyncTask基础
2016-03-05
Android 使用ListView的A-Z字母排序功能实现联系人模块
2016-03-02
Android 仿美团网,探索ListView的A-Z字母排序功能实现选择省份或者城市
2016-03-02
Android 带清除功能的输入框控件EditTextWithDel
2016-02-29
探索PinYin4j.jar将汉字转换为拼音的基本用法
2016-02-24
Android 使用Kotlin来实现加边框的文本
2021-07-28
Android 使用Kotlin来实现自定义View之雷达图
2021-07-28
Android 使用Kotlin来实现任务完成提醒效果
2021-07-23
Android 使用Kotlin来实现水波纹的自定义View
2021-07-22
Android 仿Keep探索向上滑动时PopupWindow向右退出消失,向下移动时PopupWindow向左推出出现
2019-10-02
Android 仿Keep,探索向上滑动时PopupWindow向右退出消失,向下移动时PopupWindow向左推出出现
2019-09-26
Android Animation之TranslateAnimation(平移动画)
2019-09-23
Android 使用MediaPlayer播放视频
2019-09-04
Android Activity内嵌Fragment,当Activity recreate时Fragment被添加多次,造成界面重叠
2019-09-03
Android CoordinatorLayout打造酷炫的顶部栏
2019-07-08
Android 自定义可展开的ExpandTextView
2018-07-01
Android 自定义View实现环形带刻度颜色渐变的进度条
2018-07-01
Android ViewPager的简单使用
2018-06-30
Android 自定义View实现环形带刻度的进度条
2018-06-19
Android Paging Library 基于RecyclerView的分页加载框架
2018-05-24
Kotlin 自定义view之实现标尺控件(选择身高、体重等)
2018-05-13
Android 使用SeekBar时动态显示进度且随SeekBar一起移动
2017-05-31
android自定义Dialog的简单实现
2016-11-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人