![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安卓进阶
文章平均质量分 59
谈情不如逗狗.
这个作者很懒,什么都没留下…
展开
-
Android 数据库框架ormlite 使用
...原创 2022-11-09 17:42:05 · 2455 阅读 · 0 评论 -
安卓 线程池的正确使用 模仿电影下载
。。。原创 2022-10-25 13:35:10 · 768 阅读 · 0 评论 -
谷歌二维码引擎zxing的使用
。。。原创 2022-10-25 10:31:39 · 739 阅读 · 1 评论 -
MPAndroidChart 绘制 饼状图、柱状图和折线图简单汇总
。。。原创 2022-09-22 14:04:16 · 1055 阅读 · 0 评论 -
MPAndroidChart的使用:水平柱状图
。。。原创 2022-09-22 11:47:08 · 444 阅读 · 0 评论 -
Android MVP模式详解
一、MVP概述MVP,全称 Model-View-Presenter,即模型-视图-层现器。提到MVP,就必须要先介绍一下它的前辈MVC,因为MVP正是基于MVC的基础发展而来的。两个之间的关系也是源远流长。MVC,全称Model-View-Controller,即模型-视图-控制器。View:对应于布局文件Model:业务逻辑和实体模型Controllor:对应于Activity但是View对应于布局文件,其实能做的事情特别少,实际上关于该布局文件中的数据绑定的操作,事件处理的转载 2022-03-01 13:56:59 · 8227 阅读 · 2 评论 -
框架模式MVC在安卓中的实践
我们采用ListView来演示我们的MVC模式,目录结构:实体类:包含了书的名字和图片信息public class Book { //书名 private String name; //书的图片 private int image; public Book(String name, int image) { this.name = name; this.image = image; }模型类(M..转载 2022-03-01 13:27:52 · 233 阅读 · 0 评论 -
Android 下拉刷新,上拉更多 框架实践
activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:lay...原创 2022-02-22 15:36:47 · 589 阅读 · 0 评论 -
安卓 串口开发
上图:上码:在APP grable添加 // 串口 需要配合在项目build.gradle中的repositories添加 maven {url "https://jitpack.io" } implementation 'com.github.licheedev.Android-SerialPort-API:serialport:1.0.1' implementation 'com.jakewharton:butterknife:8.4.0'原创 2022-01-17 16:35:28 · 4599 阅读 · 0 评论 -
Android WebSocket实现即时通讯功能
最近做这个功能,分享一下。即时通讯(Instant Messaging)最重要的毫无疑问就是即时,不能有明显的延迟,要实现IM的功能其实并不难,目前有很多第三方,比如极光的JMessage,都比较容易实现。但是如果项目有特殊要求(如不能使用外网),那就得自己做了,所以我们需要使用WebSocket。WebSocketWebSocket协议就不细讲了,感兴趣的可以具体查阅资料,简而言之,它就是一个可以建立长连接的全双工(full-duplex)通信协议,允许服务器端主动发送信息给客户端。Java-转载 2021-07-20 16:49:04 · 491 阅读 · 2 评论 -
WebRTC语音对讲无声音
最近在搞Webrtc对讲的降噪和回音消除,找了代码然后改了非常多。。。。发现一个很无语的Bug:进入程序进行语音对讲,有偶发扬声器无法播放声音,但如果首先进行视频通话,再语音,刚正常。刚开始怀疑是代码改了哪里改错了,查了很多资料,Webrtc输出的每行日志都排查了,还是不行,后来直接通过查看喇叭设置,发现那个setSpeakerphoneOn已被关闭了,真是Orz.....然后直接在启动程序时,先检查下喇叭是否关了,如果关了就重新打开,下面附上打开和关闭的代码吧:打开扬声器://检查是否关闭原创 2021-07-12 15:28:57 · 1795 阅读 · 0 评论 -
Android recyclerView/listview的点击变色、点击换背景颜色
需要用到:RecyclerView依赖: //XRecyclerView 框架 implementation 'com.jcodecraeer:xrecyclerview:1.3.2'main layout<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="...原创 2021-05-19 11:53:50 · 1207 阅读 · 2 评论 -
Android音量控制
0. Thanks ToAndroid音量控制调节android 音量控制setVolumeControlStreamandroid 音量调节以及媒体音量界面1. 音量调节我们知道,在平常调节音量的时候,是有一定的调节数值,也就是,每按一次音量+/-,音量的增加/减小幅度,这个我们称为:系统的音量步进值。而,音量还有一定的范围,系统的是:0到Max,Max不确定,这个称为:系统的音量范围。在Android中,是有几种类型的音量可以调节:STREAM_ALARM 警报 STREAM_原创 2021-05-17 14:07:42 · 1512 阅读 · 0 评论 -
一个非常好用的Android图片选择框架 一步搞定头像的选择、裁剪、拍照
前言几乎每个APP都需要图片选择和裁剪功能,因为涉及到相机和存储,所以该功能还是要考虑很多兼容性的。这也是github上有一大堆图片选择框架的原因,但是你会发现github上找的图片选择框架并不是简单的只有图片选择, 它还包含视频选择、视频录制、图片压缩等等一大堆功能。其实你只需要一个头像选择的功能,那些框架很多功能你根本用不到,而且代码至少也几十个类,后期有问题改起来也是麻烦事。所以我就封装了一个代码及其简洁的图片选择框架,没有任何多余的功能,涉及的主要功能类只有3个,使用也是非常简单。原文.转载 2021-05-10 09:52:06 · 1725 阅读 · 1 评论 -
IO组件之Commons 基本使用步骤 IOUtils
引言Java组件 :组件是抽象的概念而已,通俗的说是一些符合某种规范的类组合在一起就构成了组件。他可以提供某些特定的功能,可以理解为是由多个jar包构成的 。简单理解为多个.class文件构成jar包 ,多个jar包构成组件 ,多个组件构成框架。Commons 如何使用 ?1、首先我们得到 http://apache.org/ ,这Commons组件使用包,这个网站是Apache软件基金组织 ,由世界上各大互联网公司提供了大量的前沿的组件和框架。2、选择IO的...原创 2021-04-22 11:25:53 · 625 阅读 · 0 评论 -
仿微信视频通话大小视图切换(SurfaceView实现)
仿微信视频通话大小视图切换(SurfaceView实现)前言前一段时间做了一个即时通讯的项目,在项目中遇到很多坑,有时间一一做个总结,项目消息发送基于XMPP+Tigase,语言视频通话基于PJSIP+FreeSWITCH,项目UI仿微信。做到视频通话时,遇到本地视图与远程视图切换,网上搜了一篇相关的博客:https://blog.csdn.net/xuedaqian123/article/details/77878781,根据大神思路写了这个Demo,其中用的是第三直播源可能有点不稳..转载 2021-04-06 13:45:39 · 504 阅读 · 0 评论 -
Android WebView获取上一个链接的路径或当前打开子页面路径
/** * 拿到上一页的路径 */ WebBackForwardList backForwardList = mViewBinding.webview.copyBackForwardList(); if (backForwardList != null && backForwardList.getSize() != 0) { //当前页面在历史队列中的位置 int currentInde...原创 2021-01-21 17:30:21 · 890 阅读 · 0 评论 -
Android 开发 AudioRecord音频录制
前言 Android SDK 提供了两套音频采集的API,分别是:MediaRecorder 和 AudioRecord,前者是一个更加上层一点的API,它可以直接把手机麦克风录入的音频数据进行编码压缩(如AMR、MP3等)并存成文件,而后者则更接近底层,能够更加自由灵活地控制,可以得到原始的一帧帧PCM音频数据。实现流程获取权限 初始化获取每一帧流的Size 初始化音频录制AudioRecord 开始录制与保存录制音频文件 停止录制 给音频文件添加头部信息,并且转换格式成wa.原创 2021-01-20 16:47:08 · 1362 阅读 · 0 评论 -
Android开发之MediaRecorder类详解
手机一般都有麦克风和摄像头,而Android系统就可以利用这些硬件来录制音视频了。为了增加对录制音视频的支持,Android系统提供了一个MediaRecorder的类。该类的使用也非常简单,下面让我们来了解一下这个类:一、类结构: java.lang.Object ? android.media.MediaRecorder 二、类概述:用于录制音频和视频的一个类。三、状态图:vcmRlcl9zdGF0ZV9kaWFn.原创 2021-01-20 16:42:06 · 899 阅读 · 0 评论 -
Android图片转换为Base64编码
假如服务器需要拿到客户端的图片数据,有两种方法可以实现:让客户端将图片上传到服务器,将图片的网络URL告诉服务器 将图片转成Base64编码,传递给服务器,服务器将Base64字符串解码之后生成一张图片。本文就重点讲解一下图片转Base64Android在util包中提供了android.util.Base64类,该类提供了四个编码方法,分别是:public static byte[] encode(byte[] input, int flags)public static byte[]原创 2021-01-20 16:38:48 · 4494 阅读 · 2 评论 -
Android 控件WebView设置同步Cookie
01. 设置方式同步的问题很常见,网上搜到的解决方法基本类似。 /** * 给WebView同步Cookie * * @param context 上下文 * @param url 可以使用[domain][host] */ private void syncCookie(Context context, String url) { CookieSyncManager.createInstance(context); CookieM.原创 2021-01-20 16:13:50 · 1465 阅读 · 1 评论 -
模仿微信的按住录音功能
我把整个逻辑封装到一个Button里了,可以直接使用这个Button,当按住时会开始录音,当手指移到Button外时取消录音,该Button还向外暴露了一个Finish接口,录音完成时调用这个接口,具体使用方法看代码吧。效果如下:package demo.com;import java.io.File;import java.io.IOException;import android.app.Dialog;import android.content.Context;import原创 2021-01-15 11:22:15 · 350 阅读 · 0 评论 -
唤醒屏幕 ,解锁屏幕(Android)
// 唤醒屏幕代码 PowerManager mPowerManager = (PowerManager) MainActivity.this.getSystemService(POWER_SERVICE); PowerManager.WakeLock mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerMa.原创 2020-11-19 16:18:41 · 860 阅读 · 0 评论 -
Android计步器开发
本文只赘述Android计步器开发里计步的原理。在Android4.4版本之后,新增了STEP_COUNTER和STEP_DECTECTORSTEP_COUNTER表示自从开机以来,你走的步数累计;STEP_DECTECTOR表示你单次有效的步数。理解了这两个含义就很容易开发这个最原始和最简单的计步器了。先在AndroidManifest.xml中添加权限: <uses-feature android:name="android.hardware.sensor..原创 2020-11-19 14:41:56 · 1476 阅读 · 0 评论 -
科大讯飞语音唤醒(Android)
前面的工程项目配置和语音识别差不多,但是需要从SDK的res文件夹中复制ivw文件夹粘贴到main下面的assets文件夹下面。具体的文件配置结构,我截个图给大家看看:剩下的步骤就是两页代码了,附上!首先是MyApplication中的代码:public class MyApplication extends Application {@Overridepublic void onCreate() { initializeIflytek(); super.onCreate()转载 2020-11-19 14:01:21 · 3281 阅读 · 0 评论 -
科大讯飞语音听写,语言转文字(Android)
前面就不废话了,像申请应用,获取SDK等等,我相信大家应该都会的,科大讯飞采用的是两种语音听写功能,一种带有UI,一种没有UI,本人还是比较笨的,所以就写了较为简单的不带UI的语音听写,哈哈哈话不多说,我们开始操作!第一步:先把下载下来的SDK文件中libs包下文件复制粘贴到app下的libs下,如下图所示:Msc.jar一定要导入工程中(右击这个jar包,选择Add AS Libraries),然后最重要的一步就是在app的build.gradle文件中的android里面添加sourceSe转载 2020-11-18 15:10:48 · 2450 阅读 · 1 评论 -
一句代码搞定权限请求,从未如此简单
这可能是使用最便捷的权限请求框架Github传送地址,欢迎Star另外想对Android 6.0权限需要深入了解的,可以看这篇文章Android 6.0运行权限解析(高级篇)集成步骤dependencies { implementation 'com.hjq:xxpermissions:5.2'}一句代码搞定权限请求,从未如此简单点此查看完整的示例代码XXPermissions.with(this) //.constan..转载 2020-11-04 15:59:17 · 932 阅读 · 0 评论 -
安卓Zxing的简单使用- 以及(生成二维码与扫一扫)
前言:Zxing -github链接:https://github.com/zxing/zxing1、效果图:zxing自带扫码界面(横屏)自定义扫码界面2、build.gradle中加入implementation 'com.journeyapps:zxing-android-embedded:3.6.0'3、activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayo转载 2020-10-26 16:56:53 · 868 阅读 · 0 评论 -
Android代码模拟物理、屏幕点击事件 、APP内部自动点击
一、应用中模拟物理和屏幕点击事件例如,模拟对某个view的点击事件private void simulateClick(View view, float x, float y) { long downTime = SystemClock.uptimeMillis(); final MotionEvent downEvent = MotionEvent.obtain(downTime, downTime,MotionEvent.ACTION_DOWN, x, y, 0); d原创 2020-09-29 14:41:41 · 6638 阅读 · 0 评论 -
安卓 三级菜单 三级树目录
三级树目录:下载地址:先上图:实现:activity_main:<?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" an原创 2020-06-15 17:19:14 · 1002 阅读 · 3 评论 -
Android判断两个时间的大小
/** * 判断2个时间大小 * yyyy-MM-dd HH:mm 格式(自己可以修改成想要的时间格式) * @param startTime * @param endTime * @return */public static int timeCompare(String startTime, String endTime){ int i=0; //注意:传过来的...原创 2020-04-09 15:24:03 · 759 阅读 · 0 评论 -
Alarmmanager设置定时任务有延迟的问题
安卓在6.0引入了新的省电机制——Doze模式,系统息屏后会把一些广播啊网络啊什么的都切断或者降低频率,所有我们设的闹钟广播也被延迟了,在android6.0之后,如果想继续保持Alarm在手机处于所谓Doze模式时仍然能够被即时响应,则需要使用AlarmManager新提供的两个方法setAndAllowWhileIdle()或者setExactAndAllowWhileIdle()最后代码...原创 2020-04-09 14:37:24 · 804 阅读 · 0 评论 -
home键,recent键,back键的屏蔽
我们都知道,android自5.0以后对一些属性有了比较大的改动,尤其是home键,在应用层已经无法做到屏蔽。今天就来看看如何屏蔽这三个键。首先,因为不同手机的触发机制不一样,所以对于某些手机,recent键没法屏蔽,已知的有魅族,锤子(少数),鲁比亚(某些)。对于已知测试的手机,home键,back键都能屏蔽。首先,屏蔽back比较简单,重写onKeyDown就可以了,直接上...转载 2019-12-27 15:33:15 · 591 阅读 · 0 评论 -
Android自定义View全解
目录目录.png1. 自定义View基础1.1 分类自定义View的实现方式有以下几种类型 定义 自定义组合控件 多个控件组合成为一个新的控件,方便多处复用 继承系统View控件 继承自TextView等系统控件,在系统控件的基础功能上进行扩展 继承View 不复用系统控件逻辑,继承View进行功能定义 继承系统ViewGroup ...转载 2019-11-19 16:22:10 · 207 阅读 · 1 评论 -
安卓 自定义组合控件
在工作中,有些界面比较类似或者需要重复使用。为了减低代码量,我们可以自定义成你想要的样子,比如下面这样:我们可以继承RelativeLayout来拓展,这样既可以减轻代码量也可以更好的复用;RelativelayoutTitleBar.javapackage youli.com.example.administrator.relativelayout_zdy;imp...原创 2019-11-19 13:58:51 · 268 阅读 · 0 评论 -
Android 下拉回弹BounceScrollView
https://blog.csdn.net/newcoderzZ/article/details/81750614https://www.jb51.net/article/92226.htm原创 2019-11-15 15:04:30 · 691 阅读 · 0 评论 -
Android之水波纹点击效果(RippleView)
Android5.0后各种炫的效果纷纷出来,写这篇博客主要是讲的是按钮点击效果带有的水波纹(波浪式)。当然我写的这个是自定义来实现的,在低版本(5.0一下)也可以实现点击效果。看看效果图:上图可看出 点击有抖动效果和不抖动效果。布局代码:<?xml version="1.0" encoding="utf-8"?><LinearLayou...原创 2019-11-15 15:01:26 · 745 阅读 · 0 评论 -
Toasty的使用以及简单封装
,toasty的使用。为啥要用toasty呢,咳咳,大家都用过安卓自带的toast,试想这样一个场景,你正在使用一个五彩斑斓,各种炫酷动画层出不穷的APP,突然冒出了这样的图片。。。这样颜值不高的东西,怎么能找到女友呢,呸,怎么能获得用户喜欢呢,所以,我们要提高颜值! 在本节以前,会用到以前文章所讲过的东西,避免重复,就直接给地址一、全局使用context好了,那先来看...原创 2019-11-15 11:52:27 · 940 阅读 · 0 评论 -
android之官方下拉刷新组件SwipeRefreshLayout
一、问题描述 在android开发中,使用最多的数据刷新方式就是下拉刷新了,而完成此功能我们使用最多的就是第三方的开源库PullToRefresh。现如今,google也忍不住推出了自己的下拉组件SwipeRefreshLayout,下面我们通过api文档和源码来分析学习如何使用SwipeRefreshLayout。 先看效果图:二、SwipeRefreshLayout的具体...原创 2019-11-15 11:43:29 · 372 阅读 · 0 评论 -
android nfc中Ndef格式的读写
原文地址检测到标签后在Activity中的处理流程1. 在onCreate()中获取NfcAdapter对象;NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);2.在onNewIntent()中获取Tag对象或者NdefMessage信息;获取Tag对象:Tag tag = intent.getParcel...转载 2019-01-17 10:24:16 · 1904 阅读 · 0 评论