自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android 串口通信 原来如此简单

Android串口通信,Android SerialPort,安卓串口通信框架,Android串口通信SDK,Android串口通信开源库,实现串口快速通信,无需在乎串口实现;适用于Kotlin项目;

2022-11-06 21:50:40 7729 16

原创 Android ViewStub动态加载View

android ViewStub动态添加Viewandroid ViewStub不使用布局id

2022-08-02 09:59:20 842

原创 android 控制 导航栏、状态栏

但在SDK30开始,我们发现systemUiVisibility,SYSTEM_UI_FLAG_HIDE_NAVIGATION,SYSTEM_UI_FLAG_IMMERSIVE已经被废弃了,我们应当用新的API进行调用,新的API兼容旧版本;在SDK30开始,WindowManager.LayoutParams.FLAG_FULLSCREEN以及WindowManager.LayoutParams.FLAG_FULLSCREEN也被废弃了,同样我们需要使用新版API...

2022-07-27 09:24:32 1396

原创 android 黑夜模式适配记录

文章目录前言一、不开启深色模式1.关闭自动深色模式二、适配深色模式1.关闭自动深色模式2.创建res深色适配目录前言在android 10以上,手机可开启深色模式,为了让手机更符合谷歌的规范,我们需要进行黑夜模式的适配一、不开启深色模式深色模式下,部分手机系统开启深色模式后,会自动帮我们将app转变为深色模式,即使我们并没有进行适配;这种自动的转色,大部分时候不尽人意,为了不让app在深色模式下显示紊乱,我们需要关闭深色模式;1.关闭自动深色模式1.一般我们都会让整个app使用统一的them

2021-04-25 16:13:19 1344

原创 Android 协程使用的心得记录

1.导入implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9'

2021-01-13 10:26:31 866

原创 Android 辨别是否为Android模拟器 可信度高

一、前言前几天发布了获取Android 唯一识别码的开源库,并为此撰写了文章告诉大家如何使用,在写文章时突然想到,如果你需要获取Android 唯一识别码,那么你可能需要判断当前用户是否用的是虚拟机登录APP,为此我努力寻找方法辨别模拟器,功夫不负有心人,最终找到了方法,并更新了开源库;上一篇文章地址:Android 获取唯一识别码 原来如此简单(kotlin)二、使用步骤1.引入库在Build.gradle(:app)下导入jitpack库:allprojects { repositor

2020-12-23 17:35:36 619

原创 Android 获取唯一识别码 原来如此简单(kotlin)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、DeviceIdUtils 的介绍二、使用步骤1.引入库2.如何使用3.更多使用三、DeviceIdUtils 做了什么?四、github传送门前言在项目之中,我们可能会需要获取Android 唯一设备码进行某些操作,如游客登录,但是现在由于对于权限的管控更加严格了,传统的IMEI获取在Android 6.0 - 10.0 已经不能再获取到了,这无疑给项目开发增加了一些小麻烦;为此,我在闲余时间里写了一个工具类,提供给

2020-12-21 18:02:11 2253 2

原创 Android Material-dialogs的使用(kotlin)

文章目录前言一、Material-dialogs是什么?二、使用步骤1.引入库2.使用弹窗总结前言这篇文章是对框架Material-dialogs的使用的总结,如果已经熟练使用,那这篇文章对您毫无帮助提示:以下是本篇文章正文内容,下面案例可供参考一、Material-dialogs是什么?Material-dialogs为一个弹窗的框架,帮助我们快速搭建各种弹窗,使用这个框架的理由只有一个,它是kotlin,并且具有高度自定义性,此文章默认读者已经会基本使用kotlin二、使用步骤1.引入

2020-11-28 16:13:14 5999 1

原创 好用的本地图片选择工具:PictureSelector

简介:PictureSelector是一个帮助快速选择本地图片/视频的工具,具有预览,调用相机等功能,帮助开发者省去了大量麻烦事,实现快速获取本地图片/视频;1.导入项目ependencies { implementation "com.github.LuckSiege.PictureSelector:picture_library:v2.5.9"}android { //解决PictureSelector包冲突问题,有冲突问题时再加上 configurations {

2020-10-17 15:12:20 5519

原创 Android 绘制加载中的动画

先展示实现后的效果:1.首先,先new一个类继承自view,我们需要绘制出一个小球,以及绘制出文字,我们分开使用俩个画笔class LoadingDialog : View { //球的画笔 private var ballPaint: Paint? = null //文字的画笔 private var textPaint: Paint? = null //字体大小 private var textSize = 40F //球的直径 = 文字

2020-08-06 17:00:30 554 2

原创 Android objectBox的使用(kotlin)

1.首先是添加依赖;build.gradle(Module:app)buildscript { ext.objectboxVersion = '2.6.0' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.6.2' //添加objectBox依赖 classpath "io.objectbox:objectbox-gradle-plugin:$objectb

2020-07-22 20:30:41 826

原创 Android下载安装Apk

1.自定义监听类,以返回下载结果interface DownLoadListener { /** * 下载成功之后的文件 */ fun onDownloadSuccess(file: File) /** * 下载进度 */ fun onDownloading(progress: Int) /** * 下载异常信息 */ fun onDownloadFailed(e:Exception)}进行

2020-07-18 10:54:28 4112

原创 ExoPlayer的监听事件(Kotlin)

这篇文章来讲讲exoplayer注册的部分监听事件的作用(如果讲解有误,请在评论区留言令作者改正)setPlaybackPreparer()这个的使用方法是:PlayerView.setPlaybackPreparer()player_view.setPlaybackPreparer(this)override fun preparePlayback() { //当视频无法播放时,用户继续点击播放按钮,调用此方法 showToast("视频已损坏") }

2020-05-31 11:25:12 3533

原创 Android 隐藏/显示状态栏导航栏

项目中需要播放视频,所以需要在全屏和非全屏下 隐藏/显示 状态栏和导航栏,尝试之后发现以下写法有效,在此记录一下; //显示状态栏和导航栏 fun visibilityStatusAndNavigation() { window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_VISIBLE or View.SYSTEM_UI_FLAG_LAYOUT_STABLE window.clea

2020-05-31 10:59:13 719

原创 Android Edittext输入时光标位置不变且卡顿

记录一次Edittext的坑,当在edittext输入字符时,发现Edittext输入缓慢,且光标不会动,一开始我尝试了添加各种输入监听让光标移动: binding.etVideoPath.addTextChangedListener { println("执行") binding.etVideoPath.setSelection(binding.etVideoPath.text.toString().length) } bi

2020-05-30 13:55:04 1144

原创 AndroidX中,xml添加fragment报错

今天在做Fragment切换的时候发现了个错误,原本的布局中的代码是这样的:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="

2020-05-23 15:18:22 1407 5

原创 Exoplayer的入门使用(kotlin)

首先,你需要导入ExoPlayer的包implementation 'com.google.android.exoplayer:exoplayer:2.11.4'我在此时查到的最新版的是2.11.4的,你们可以通过github获取到当前最新版本,地址:Exoplayer此时进行rebuild你将报错,报错信息为:Invoke-customs are only supported starting with Android O (--min-api 26)你需要在让他支持java8,写在bu.

2020-05-17 20:52:59 1377

原创 Android 简单实现轮播图

实现在图片轮播时首尾的图片均可滑动0.首先将一下实现原理,就是在原来三张图的基础上,多增加俩张在头尾,让用户没感觉的切换;思路就是图片中的这样,以后可能出一篇自定义轮播图控件的文章,项目要求我马上搞完,就只能先这样了。(毕竟加班是不好的行为☺)1.首先当然是编写xml代码啦 <FrameLayout android:layout_width="0dp" ...

2020-04-23 18:22:49 1935 3

原创 Android 隐藏底部导航栏后,第一次点击失效,第二次点击有效

Android 隐藏底部导航栏后,第一次点击失效,第二次点击有效的问题隐藏底部导航栏的代码是这样的: @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus && Bu...

2020-04-12 11:58:56 888

原创 Android 实现自定义控件(组合控件)

Android 自定义控件的实现本文种实现的自定义控件为键盘,总体有三步:实现键盘的样式(xml);实现自定义属性(attrs);实现自定义view类;实现调用;1.首先,先实现键盘的样式,我在这里实现的为输入金额的键盘;在这里插入代码片2.实现自定义属性(attrs);在这里插入代码片3.实现自定义view类,在类中进行数字按键的判断;package com.bx....

2020-03-31 20:55:51 462

原创 Android Spinner setSelection失效

关于使用spinner setSelection失效,总结了一下三种方法:第一种:spinner.setAdapter(arrayAdapter);spinner..setSelection(1,true); //spinner会重新layout第二种:spinner.setAdapter(arrayAdapter);arrayAdapter.setnotifyDataSetCha...

2020-03-16 21:50:09 1541 3

原创 Android 带你一步步进行代码混淆,打包正式版APK(二)

上一章节我们进行了jks的生成,接下来就是进行代码混淆了二 代码混淆1.首先,我们打开build.gradle(Module:app)2.在Android - defaultConfig{}中加入:aaptOptions.cruncherEnabled = falseaaptOptions.useNewCruncher = false这样做是为了后面在打包生成正式版apk的时候,不会...

2020-03-15 22:35:57 471

原创 Android 带你一步步进行代码混淆,打包正式版APK(一)

一 此章节重点讲解生成jdk签名文件进行代码混淆的目的,就是为了在被恶意反编译APK时,能给其增加难度;接下来,将一步步带领解析如何进行代码混淆;1.要想打包正式版apk,没有自己的签名怎么能行呢,所以我们需要在Android studio 中先生成自己的签名文件;a.首先,点击Build-Generate Signed Bundle/apk;b.此处选择apk,点击next;c.由...

2020-03-15 21:13:14 308

原创 Android Spinner的使用

**Spinner为下拉菜单控件,接下来教大家如何使用;**1.首先在布局文件中添加Spinner;<Spinner android:id="@+id/spinner" android:layout_width="100dp" android:layout_height="wrap_con...

2020-03-09 17:33:16 333

原创 Android实现自定义接口回调

**前言本次自定义接口是监听listview的item中的控件,并回调做其他逻辑,如:点击listview 后出现AlertDialog弹窗等;(其实listview本来就有item点击的监听事件,这里只是做个示范)1.首先为listview定义一个adapter,在adapter中创建接口: public class ListAdapter1 extends BaseAdapter{ ...

2020-03-03 22:40:44 593 1

原创 自定义dialog弹窗样式

系统自带的dialog并不能满足所有的项目需求,这时想要独一无二的弹窗就需要自定义自己的样式了。1.创建类继承自dialog;abstract class CustomDialog extends Dialog { private Button sure,cancel; private int layout;//需要加载的布局 private b...

2020-02-29 19:00:15 990 1

原创 Installation failed with message device '0123456789ABCDEF' not found.

在Android studio run时弹出该对话框:报错详细为:博主遇到该错误是因为电脑与Android机连接线接触不良导致,尝试换根数据线或者尝试手动将数据线接口处按紧吧!...

2020-02-28 18:45:41 536

原创 安卓为控件的VISIBLE和GONE设置动画

首先,设置动画是为了让控件的出现和消失不那么突兀;1.编写动画代码; protected void setAnimation(View view) { TranslateAnimation translateAnimation; if (view.getVisibility() == View.VISIBLE) {//可见时的动画 tra...

2020-02-28 18:31:22 1188

原创 报错:ArrayAdapter requires the resource ID to be a TextView 问题;

此问题在使用Spinner绑定布局时报错; ArrayAdapter<String> arrayAdapter =new ArrayAdapter<String>(getContext(), R.layout.spinner_item2,ListData()); arrayAdapter.setDropDownViewResource(R.layout.s...

2020-02-28 17:10:18 220

空空如也

空空如也

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

TA关注的人

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