自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(162)
  • 资源 (5)
  • 收藏
  • 关注

原创 Jetpack学习之WorkManager的简单使用(五)

WorkManager是Jetpack架构组件中的,可以用来执行一些将来执行的任务。不适用于立即执行的任务,和退出时需要执行的任务。(ps:感觉用处不大,一般需求都是立即执行的任务)抱着学习的态度,我们来简单使用下:导包 implementation "androidx.work:work-runtime:2.5.0"Workpublic class UploadWorker extends Worker { public UploadWorker(@NonNull C

2021-11-22 15:42:24 228

原创 Jetpack学习之Room的简单使用(四)

文章目录前言一、Room是什么?前言学习记录下Jetpack Room的基本使用,虽然没用过,但是出去面试万一人家一问,都不知道,就挺尴尬了,虽然我不用,但是我得知道有这个东东。这里也说个题外话,新技术层出不穷,每天都在有新事物的出现,不可能把所有的东西都搞明白原理(天才除外),人的精力是有限的。有些东西可能学的再透彻,也不会用到,有些东西,可能只读过一段话,就终身受益。废话不说了,接着记录学习笔记。一、Room是什么?Room 是 Jetpack架构中的工具,是对sqlite的上层封装,可以让我

2021-11-18 17:21:52 1153

原创 Jetpack学习之LiveData&ViewModel(三)

文章目录一、前言二、LiveData三、ViewModel一、前言1.Jetpack学习之DataBinding2.Jetpack学习之Lifecycles通过上两篇的学习,对DataBidning和Lifecyces有了简单的了解。实际使用中都是结合 LiveData 和 ViewModel 一起使用的。以下结合代码简单使用学习下,这里也是记录下学习的过程。二、LiveData先来简单看下LiveData这个类,和其中的几个方法:public abstract class LiveData

2021-11-17 15:46:06 248

原创 ViewPager2去掉边界滑动阴影效果

在ViewPager2中滑动到边缘会有这个效果,如果想去掉的话,直接在xml中添加 android:overScrollMode=“never” 是不管用的。查看源码ViewPager2中是由RecyclerView实现滑动的,可以通过反射实现,代码如下:try { Field mRecyclerView = mBinding.viewPager.getClass().getDeclaredField("mRecyclerView"); mRecyclerView.setA.

2021-11-15 10:56:58 1270

原创 Jetpack学习之Lifecycles(二)

文章目录一、前言二、Lifecycles1.Lifecycles简单分析2.总结一、前言Jetpack学习之DataBinding(一)通过上篇文章的学习,介绍了DataBinding的简单使用,今天来学习记录下Jetpack架构分类下的Lifecycles。Jetpack核心组件 Lifecycles、LiveData、ViewModel、Room也被称为AAC。二、Lifecycles1.Lifecycles简单分析Lifecycles根据网上官方解释,是一个可感知Activity生命

2021-11-14 15:25:38 1433

原创 Jetpack学习之DataBinding(一)

文章目录一、 JetPack是什么一、 JetPack是什么百度下都是差不多的说明,我这里结合自己的理解记录下,可能理解的也不是很全面正确。JetPack是一套工具库,包含4类组件、分别是架构、界面、行为、基础。(这里不结合代码个人感觉也不太好理解)。因为是一套工具库,可以单独使用,也可以配合使用。每个组件都给用户提供了一个标准,能够帮助开发者遵循最佳做法。(意思就是好用呗)。这里从copy了一张图,大体了解下:从图片可以看出,4大类,每种分类下面好多工具,这里学到哪个,通过简单的例子记录下,方

2021-11-13 20:22:44 1143

原创 Android使用Palette提取主色调

Palette简单使用使用场景:状态栏或者标题栏随着界面加载不同的图片显示不同的图片色调导包implementation 'androidx.palette:palette:1.0.0'获取图片色调Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ico_bg);//这里第2个参数为要加载的图片Palette.from(bitmap).generate(palette -> { Palet

2021-11-12 10:46:35 450

原创 Android自定义View之declare-styleable记录

format值类型reference资源IDcolor颜色值dimension尺寸值float浮点值string字符串fraction百分数 <declare-styleable name="XXX"> // 自定义View的类名 <attr name="" format="reference" /> // 资源ID <attr name=...

2021-11-10 10:41:38 504

原创 Android画笔Paint与文字相关的设置

Android自定义View中,会使用到Paint相关的操作,记录下文字相关的操作Paint paint = new Paint();paint.setColor(Color.RED); // 设置画笔颜色paint.setStrokeWidth(40); // 设置画笔宽度paint.setAntiAlias(true); // 使用抗锯齿paint.setTextAlign(Paint.Align.CENTER); // 设置文字对齐方式paint.setTextSize(100); /

2021-10-31 22:04:20 350

原创 Android定时器Timer简单使用

Android定时器Timer简单使用Timer简介Timer使用总结Timer简介Timer(计时器)位于 java.util包下,可用于创建定时任务,任务可以安排为一次性执行,也可以定期重复执行。每个计时器对象对应一个后台线程(TimerThread)。简单理解为创建Timer对象,对应TimerThread线程循环开始从TaskQueue队列中执行一个TimerTask任务。Timer使用创建Timer对象var timer = Timer()添加需要执行的任务// 创建计

2021-10-25 10:49:07 201

原创 Android音视频MediaExtractor和MediaMuxer使用

MediaExtractor使用MediaExtractor简介MediaExtractor使用MediaExtractor简介MediaExtractor用来把视频和音频的数据进行分离对于一个常见的视频文件,有一个视频轨道,和一个音频轨道,通过MediaExtractor来分离音视频数据MediaExtractor使用...

2021-07-20 15:03:46 24

原创 NestedScrollView中fillViewport属性

fillViewport定义scrollview是否应拉伸其内容以填充视口从代码上看比较直观,先不添加fillViewport属性<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_heig.

2021-06-28 14:53:35 43

原创 ImageView使用tint属性

使用以下图片,tint设置不同颜色,效果如下:直接上图片,ImageView的tint属性是Android5.0以后引入的,这个属性比较好用,可以直接修改图片颜色。使用场景,可以切一张透明形状的图,使用tint设置显示不同的颜色...

2021-05-18 14:36:29 123

原创 WebView替换404网页

有天被问到WebView加载网页404替换的问题,想了一种方法,记录如下: 思路就是先获取请求返回的状态码,判断状态码是404,就加载404的网页这里的404效果用的简书404的地址,可以替换成自己的404即可代码如下:class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceSta

2021-04-23 16:39:55 34

原创 Android集成bugly实现异常上报

Android集成bugly实现异常上报bugly集成官方文档Android Bugly集成步骤build.gradle配置清单文件声明权限配置application测试demo下载地址bugly集成官方文档Bugly官方Android集成文档官方文档最准确,以下步骤为学习记录Android Bugly集成步骤build.gradle配置添加依赖 dependencies { //Bugly 其中lat est.release指代最新版本号,也可以指定明确的版本号

2021-04-15 17:16:46 144

原创 Android预览Camera数据

Android预览Camera数据使用Camera使用SurfaceView预览使用TextureView预览总结使用Camera注意:导入的包是android.hardware.Camera,不是android.graphics.Camera类,前者是硬件相关的相机Api,后者是2D图片转换3D图片使用的。这里要预览相机,要使用hardward硬件包下的。清单文件需要声明使用Camera权限 <uses-permission android:name="android.permissi

2021-03-18 16:45:22 60

原创 Android获取设备支持的编解码器

软解和硬解硬解是需要机器中的专门的解码芯片来完成,质量因厂家的技术能力而定,部分厂商技术实力强,兼容性和解码效果做的比较好,而有些厂商技术实力稍差,兼容性和解码效果做的就不尽如意。软解就是用CPU来解码,需要CPU的性能与处理能力较强,但对流媒体格式兼容性比较好。简单来说,硬解的清晰度好,对网络要求高,软解的流畅度好和对流媒体的支持性好。(copy自百度)方便理解为:软解CPU处理解码硬解专门的硬件芯片去处理解码获取设置支持的编解码器通过MediaCodecList来获取,Media

2021-03-17 17:03:40 780 1

原创 Android调用安装apk

Android调用安装apk声明权限调用安装代码声明权限 <!--安卓8.0打开apk安装更新--> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />注意: 此权限只需申明即可,无需动态申请。调用安装代码 /** * context 上下文对象 * filePath apk路径 */ public static v

2021-03-02 15:51:05 209

原创 Android使用AudioRecord实现录音

文章目录前言一、AudioRecord是什么二、使用步骤1.引入库2.读入数据总结前言Android使用AudioRecord实现录音提示:以下是本篇文章正文内容,下面案例可供参考一、AudioRecord是什么Android平台可以使用AudioRecord和MediaRecorder来实现录音,因为AudioRecord更接近底层,并且录制的数据为原始(pcm)数据,以下都使用pcm表示原始数据,pcm数据可以再进行处理转换,直播中使用的都是处理后的pcm数据,所以在这里面学习下使用Au

2021-01-18 17:01:15 1246 5

原创 gson解析包含不同类型数组

以下方法只是提供参考当一个list中包含不同类型时,可使用以下方法解析[ {"name":"法外狂徒张三","age":33}, "123", 123, 12.3]直接上代码public class MainActivity extends AppCompatActivity { private static final String TAG = "json"; /*[ {"name":"法外狂徒张三","age":33}, "123",

2021-01-04 10:55:17 211 1

原创 AndroidStudio编译依赖长时间下载问题

注意,不一定适用于所有的项目,可以试下问题描述:build.gradle文件中也有阿里云的镜像,还是长时间下载依赖有问题将下面依赖地址 maven { url 'https://maven.google.com/' name 'Google' }修改为:maven { url 'https://dl.google.com/dl/android/maven2/' name 'Google' }重启AS后编译通过...

2020-12-21 10:53:31 278

原创 Android获取年月日星期

public class DateTest { public static void main(String[] args) { Calendar instance = Calendar.getInstance(); int year = instance.get(Calendar.YEAR); // 年 int month = instance.get(Calendar.MONTH) + 1; // 月份 是从0开始的,要加1

2020-09-14 14:25:48 454

原创 java生成10位内随机数

public class Test { public static void main(String[] args) { System.out.println(generateRandom(1)); //生成1位随机数 System.out.println(generateRandom(2)); //生成2位随机数 System.out.println(generateRandom(3)); //生成3位随机数 System.out.p

2020-09-03 11:10:26 1527 2

原创 Android注解之@CallSuper

@CallSuper使用这个注解的方法,子类继承后,重写这个方法,必须调用父类的这个方法示例从上图可以看出,图1中重写父类方法没有调用super.method1()报错,图2调用了,没有报错。

2020-07-22 17:11:34 558

原创 EditText限制只输入中文

editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) {

2020-06-18 15:46:53 103

原创 AndroidStudio安装Statistic插件不显示问题

在AndroidStudio中Plugins中安装Statistic插件,重启AS后不显示,可能原因:当前AndroidStudio版本和Statistic插件版本不一致导致的。解决方法:查看当前AndroidStudio版本访问Statistic插件下载地址下载对应AS版本的插件最好卸载之前有问题的Statistic插件,将下载好的插件拖到AS中,AS会自动识别并提示安装,安装后重启AS既可。...

2020-05-26 10:38:23 1404 2

原创 Pthon基本数据类型

文章目录Python基本数据类型包括:数字 Number字符串 String列表 List元组 Tuple字典 Dictionary集合 SetPython基本数据类型包括:数字 Number字符串 String列表 List元组 tuple字典 Dictionary集合 Set数字 Number# coding=utf-8a = 100 # 整型变量b = 10...

2020-04-18 10:45:12 87

原创 AndroidStudio中将java目录设置为kotlin目录

在AndroidStudio中创建kotlin工程时,默认代码的目录还是java目录:<4> 强迫症,使用kotlin编写代码,目录是kotlin看着更舒服:设置很简单在build.gradle文件android标签内中添加:android { .... sourceSets { main { java { ...

2020-04-17 10:19:08 720

原创 TextView使用Paint设置下划线删除线效果

TextView tv1 = findViewById(R.id.tv1);tv1.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//设置下划线TextView tv2 = findViewById(R.id.tv2);tv2.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//设置删除线...

2020-04-01 10:16:07 726

原创 menu中showAsAction

<!-- How this item should display in the Action Bar, if present. --><attr name="showAsAction"> <!-- Never show this item in an action bar, show it in the overflow menu instead. ...

2020-02-24 09:51:40 135

原创 AndroidStudio运行java的main方法

直接运行可能会报以下类似错误:解决方法,需要在工程 gradle.properties文件中添加:android.enableAapt2=false重启AndroidStudio,再次运行:

2020-02-18 09:31:06 226

原创 Android中WebView网页上传文件设置

文章目录功能webView#setWebChromeClient功能在webView加载的网页中选择文件可以正常调用原生的选择文件功能webView#setWebChromeClientpublic class MainActivity extends AppCompatActivity { private WebView webView; private ValueC...

2020-02-05 09:33:57 795 2

原创 AndroidStudio编译报Cache values are being processed

文章目录1、删除各module下的build目录和当前工程的build目录。2、File -> Close Project3、关闭Android Studio4、重启Android Studio,打开工程即可

2019-12-25 15:06:56 149

原创 Cannot inline bytecode built with JVM target 1.8

完整报错:Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6.Please specify proper ‘-jvm-target’ option在build.gradle中添加:compileOptions { sourceCom...

2019-11-25 16:33:52 715

原创 Android蓝牙学习

文章目录蓝牙概述Android蓝牙开发判断是否支持蓝牙打开蓝牙搜索蓝牙设备配对连接打印机蓝牙概述蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线...

2019-11-24 22:11:06 85

原创 AMD CPU 开启Android Studio emulator虚拟机

文章目录BIOS中开启SVM MODE启用Hyper-V启动AS中AVDBIOS中开启SVM MODE启用Hyper-V启动AS中AVD虽然可以正常使用,但是电脑开机变慢了。。。

2019-11-11 23:02:30 950

原创 Gradle使用阿里云国内镜像

老是查,记录下。。。在项目build.gradle中添加:buildscript { repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } maven { url 'http:/...

2019-10-25 23:39:11 2857

原创 分享长链接转换链接

在做分享的时候如果url中携带了太多参数,导致url巨长,生成的二维码巨复杂,会导致识别巨慢或者失败的问题。我们可以将长url转换成短url。网上有API提供这样的功能,原理就是将长URL提交到服务器,服务器生成一个短URL映射到长URL上。当访问短URL时,重定向到长URL上。下面给下新浪短网址接口:xml方式: http://api.t.sina.com.cn/short_url/s...

2019-09-08 11:11:23 430

原创 Android使用WebView加载网页选择文件上传

文章目录效果如下:网页参考代码Android代码效果如下:使用Android WebView加载网页,网页中调用文件选择功能实现网页参考代码<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta name="viewport" content="width...

2019-09-01 11:37:28 3896 1

原创 Android自定义View之风车

文章目录效果图:画杆画风车旋转在布局文件中使用效果图:画杆public class WindmillRodView extends View { private int mWidth; private int mHeight; private Paint mPaint; public WindmillRodView(Context context) {...

2019-08-21 16:22:53 237

本地音乐播放器Demo

用工作线程去遍历外部存储,将找到的mp3文件信息保存到list集合中,用listview控件显示歌曲信息

2016-02-03

SQLiteDemo

SQLite的一个Demo

2017-01-20

Android圆形进度条

Android圆形进度条的一种实现思路

2016-10-11

黄油刀注解butterknife-master

黄油刀注解butterknife-master

2016-04-07

itemtouchhelper

使用RecyclerView和ItemTouchHelper实现拖拽移动效果.............................................................................................................................................................................................................

2017-09-19

空空如也

空空如也

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

TA关注的人 TA的粉丝

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