工具类
谈情不如逗狗.
这个作者很懒,什么都没留下…
展开
-
Android 数据库框架ormlite 使用
...原创 2022-11-09 17:42:05 · 2557 阅读 · 0 评论 -
给你的页面带上侧滑返回——SlideBack
。。。原创 2022-10-19 13:51:03 · 278 阅读 · 0 评论 -
MPAndroidChart 绘制 饼状图、柱状图和折线图简单汇总
。。。原创 2022-09-22 14:04:16 · 1091 阅读 · 0 评论 -
MPAndroidChart的使用:水平柱状图
。。。原创 2022-09-22 11:47:08 · 463 阅读 · 0 评论 -
安卓 异或 0变1 ,1变0
。。原创 2022-08-29 11:50:36 · 477 阅读 · 0 评论 -
20个Android Studio顶级插件,让你的工作更高效、更智能、更迅速
。原创 2022-07-11 13:47:23 · 4734 阅读 · 0 评论 -
框架模式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 · 241 阅读 · 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 · 4625 阅读 · 0 评论 -
androidBLE蓝牙
安卓 ble蓝牙开发原创 2021-12-28 17:30:04 · 2372 阅读 · 0 评论 -
跑马灯灵活控制
import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.util.AttributeSet;import android.view.Display;import android.view.WindowManager;import android.widge...原创 2021-11-05 11:24:52 · 184 阅读 · 0 评论 -
Android UI开发——Material Design界面设计风格
添加依赖:implementation 'com.android.support:design:30.0.3'使用: <com.google.android.material.button.MaterialButton android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:.原创 2021-10-20 16:34:26 · 1565 阅读 · 1 评论 -
Android Material组件使用详解 Button样式
https://blog.csdn.net/magic0908/article/details/101029876转载 2021-10-20 12:05:47 · 230 阅读 · 0 评论 -
安卓 Java 时间冒泡排序
import android.os.Build;import android.text.TextUtils;import androidx.annotation.RequiresApi;import java.util.List;/** * 时间冒泡排序 * <p> * 输出结果 * E/time: 01:12 * E/time: 08:12 * E/time: 09:12 * E/time: 11:12 * E/time: 13:12 * E/time: 16.原创 2021-09-24 14:12:54 · 158 阅读 · 0 评论 -
JZVideo饺子播放器播放器配置使用以及其自定义
最近在做视频这一块,对比了一下最后选用饺子视频,发现网上资料比较少而且基本都一样,比较单一,这是我找的几个比较好点的文章,供大家参考。https://www.jianshu.com/p/aafe648741b6 //比较详细https://blog.csdn.net/qq_41037945/article/details/107967265https://blog.csdn.net/cjm2484836553/article/details/78420172监听饺子播放器的播放结束..原创 2021-09-07 15:25:16 · 2157 阅读 · 0 评论 -
Android实现边录边播(MediaRecorder和AudioRecord)
Android可以通过MediaRecorder和AudioRecord这两个工具来实现录音,MediaRecorder直接把麦克风的数据存到文件,并且能够直接进行编码(如AMR,MP3等),而AudioRecord则是读取麦克风的音频流。本文使用AudioRecord读取音频流,使用AudioTrack播放音频流,通过“边读边播放”以及增大音量的方式来实现一个简单的助听器程序。PS:由于目前的Android模拟器还不支持AudioRecord,因此本程序需要编译之后放到真机运行。Activity_原创 2021-08-11 15:04:07 · 2532 阅读 · 2 评论 -
科大讯飞解决 唤醒未初始化
最近工序需要做智能AI这块,用到的是讯飞语音唤醒功能,跟着官方文档配置一切前期集成,到最后代码实现一直提示唤醒未初始化,最后找到一篇博客顺利解决,附上链接:https://blog.csdn.net/weixin_43186523/article/details/103465226唤醒未初始化解决方法:在main的下一级新建一个jniLibs目录,然后把arm64-v8a,armeabi-v7a放进去,虽然这个和libs里面可能重复了,但是如果不放进去,就会造成之后的唤醒未初始化...原创 2021-08-05 17:16:31 · 1594 阅读 · 1 评论 -
Android签名证书的sha1值获取方式
https://vchao.blog.csdn.net/article/details/71554321转载 2021-08-02 09:51:24 · 244 阅读 · 0 评论 -
Android WebSocket实现即时通讯功能
最近做这个功能,分享一下。即时通讯(Instant Messaging)最重要的毫无疑问就是即时,不能有明显的延迟,要实现IM的功能其实并不难,目前有很多第三方,比如极光的JMessage,都比较容易实现。但是如果项目有特殊要求(如不能使用外网),那就得自己做了,所以我们需要使用WebSocket。WebSocketWebSocket协议就不细讲了,感兴趣的可以具体查阅资料,简而言之,它就是一个可以建立长连接的全双工(full-duplex)通信协议,允许服务器端主动发送信息给客户端。Java-转载 2021-07-20 16:49:04 · 522 阅读 · 2 评论 -
2021-07-18
shape 属性介绍可以通过设置 angle 来自定义渐变方向,它是从左向右、逆时针转的。当 angle 设置为0度时 :当angle设置为90度时:注意:设置的值以45度为一个单位。radial样式的效果图:资源文件layout/activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android...原创 2021-07-18 15:14:53 · 163 阅读 · 1 评论 -
Android 自定义Spinner和其下拉窗口
实现效果:自定义Spinner其实包括两个部分:第一部分是用来打开下拉列表的按钮,如图,这个绿色背景直接设置Spinner的背景就行,素材文件如下: <Spinner android:id="@+id/Spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft=..原创 2021-07-16 14:11:42 · 457 阅读 · 0 评论 -
WebRTC语音对讲无声音
最近在搞Webrtc对讲的降噪和回音消除,找了代码然后改了非常多。。。。发现一个很无语的Bug:进入程序进行语音对讲,有偶发扬声器无法播放声音,但如果首先进行视频通话,再语音,刚正常。刚开始怀疑是代码改了哪里改错了,查了很多资料,Webrtc输出的每行日志都排查了,还是不行,后来直接通过查看喇叭设置,发现那个setSpeakerphoneOn已被关闭了,真是Orz.....然后直接在启动程序时,先检查下喇叭是否关了,如果关了就重新打开,下面附上打开和关闭的代码吧:打开扬声器://检查是否关闭原创 2021-07-12 15:28:57 · 1846 阅读 · 0 评论 -
WebView深度学习(二)之全面总结WebView遇到的坑及优化
上篇文章讲到了WebView的基本使用以及Android和js的交互.这篇文章讲一下WebView遇到的那些坑,带领各位爬坑。这里如果有你没遇到的问题,欢迎留言告诉我,我尽我所能帮你解决。感谢大家支持。⇒ 三、WebView的那些坑(1) 为什么Webview打开一个页面,播放一段音乐,退出Activity时音乐还在后台播放?◆◆ 解决方案 1://销毁Webview@Overrideprotected void onDestroy() { if (mWebvi转载 2021-06-25 11:24:43 · 630 阅读 · 0 评论 -
Android程序异常崩溃后重启
有时候,我们需要应用在崩溃的时候自动重启,并打开崩溃前的那个Activity。这时候,我们就需要用到Thread.UncaughtExceptionHandler这个接口。首先,我们知道,既然是要在整个Application的生命周期范围内都有效,那么我们也应该在Application中绑定它。这里有两个做法:1.程序的Application实现这个接口:...原创 2021-06-20 14:35:31 · 2112 阅读 · 0 评论 -
Android 获得 usb 权限的两种方式
0. 前言在做 USB OTG 通信时,第一步就是要能够获取到 usb 的使用权限,因此特地在此处介绍一下两种我用过的获取 usb 权限方式。1. 直接在 AndroidManifest.xml 中配置这种配置方式是在 github 上 usb-serial-for-android 项目中看到的,大家如果有兴趣可以 clone 下来研究一下。<activity android:name=".DeviceListActivity" androi...转载 2021-05-26 17:28:25 · 4475 阅读 · 2 评论 -
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 · 1262 阅读 · 2 评论 -
Android音量控制
0. Thanks ToAndroid音量控制调节android 音量控制setVolumeControlStreamandroid 音量调节以及媒体音量界面1. 音量调节我们知道,在平常调节音量的时候,是有一定的调节数值,也就是,每按一次音量+/-,音量的增加/减小幅度,这个我们称为:系统的音量步进值。而,音量还有一定的范围,系统的是:0到Max,Max不确定,这个称为:系统的音量范围。在Android中,是有几种类型的音量可以调节:STREAM_ALARM 警报 STREAM_原创 2021-05-17 14:07:42 · 1558 阅读 · 0 评论 -
【Android】一个好用的图片选择框架
【Android】一个好用的图片选择框架介绍一个好用的图片选择框架:兼容Android10。 自带权限管理。 可单独调用相册或者单独调用相机,也可以同时调用。 可配置Glide、Picasso、Imageloader等图片加载框架。 可以配置状态栏的颜色等。 框架地址:HuanTanSheng/EasyPhotosgithub.com...原创 2021-05-10 10:07:20 · 1098 阅读 · 0 评论 -
Android之仿微信发朋友圈图片选择功能
最近项目中需要用到发表评论选择多张图片和拍照的功能,于是就仿照微信发表朋友圈的选择图片和拍照做了一个这样的案例,经过查找资料终于完成了此功能,最近有时间就写出来和大家分享一下,希望对大家有所帮助。效果如下图:代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/an...转载 2021-05-10 10:02:34 · 509 阅读 · 0 评论 -
一个非常好用的Android图片选择框架 一步搞定头像的选择、裁剪、拍照
前言几乎每个APP都需要图片选择和裁剪功能,因为涉及到相机和存储,所以该功能还是要考虑很多兼容性的。这也是github上有一大堆图片选择框架的原因,但是你会发现github上找的图片选择框架并不是简单的只有图片选择, 它还包含视频选择、视频录制、图片压缩等等一大堆功能。其实你只需要一个头像选择的功能,那些框架很多功能你根本用不到,而且代码至少也几十个类,后期有问题改起来也是麻烦事。所以我就封装了一个代码及其简洁的图片选择框架,没有任何多余的功能,涉及的主要功能类只有3个,使用也是非常简单。原文.转载 2021-05-10 09:52:06 · 1763 阅读 · 1 评论 -
安卓 模拟返回按键
// 服务开启,模拟两次返回键,退出系统设置界面(实际上还应该检查当前UI是否为系统设置界面,但一想到有些厂商可能篡改设置界面,懒得适配了...) performGlobalAction(GLOBAL_ACTION_BACK); mHandler.postDelayed(new Runnable() { @Override public void run() { performGlob...原创 2021-04-23 19:30:57 · 640 阅读 · 0 评论 -
IO组件之Commons 基本使用步骤 IOUtils
引言Java组件 :组件是抽象的概念而已,通俗的说是一些符合某种规范的类组合在一起就构成了组件。他可以提供某些特定的功能,可以理解为是由多个jar包构成的 。简单理解为多个.class文件构成jar包 ,多个jar包构成组件 ,多个组件构成框架。Commons 如何使用 ?1、首先我们得到 http://apache.org/ ,这Commons组件使用包,这个网站是Apache软件基金组织 ,由世界上各大互联网公司提供了大量的前沿的组件和框架。2、选择IO的...原创 2021-04-22 11:25:53 · 651 阅读 · 0 评论 -
BASE64Decoder jar包
加密代码: 加密前字符串:String key="mykey";byte[] bt = key.getBytes();加密后字符串:String newKey=(new BASE64Encoder()).encodeBuffer(bt);解密代码:加密后的字符串:String newkey="*****"; byte[] bt = (new BASE64Decoder()).decodeBuffer(key);解密后的字符串: String key=new String(bt);//如果出.原创 2021-04-22 10:54:54 · 2919 阅读 · 0 评论 -
使用ADB指令永久隐藏或禁用状态栏和虚拟按键
原理是强大的ADB命令1、手机开启开发者模式,允许ADB调试2、电脑上下载ADB包adb.rar(529.77 KB, 下载次数: 4581)3、解压到任意位置,比如c:\adb4、cmd命令定位到adb目录,比如:cd c:\adb5、全屏沉浸:adb shell settings put global policy_control immersive.full=*6、沉浸状态栏:adb shell settings put global policy_control immersiv..原创 2021-04-15 16:15:41 · 13786 阅读 · 2 评论 -
Android实现隐藏手机底部虚拟按键
现在的手机比较流行底部带虚拟按键,比如华为、nexus,一般情况下对开发一个APP没啥影响,但是不一般情况下就会有影响的,比如全屏录像功能,用简单的方法直接获取camera支持的手机屏幕分辨率然后用SurfaceView全屏渲染出来,这时由于底部虚拟按键占用了一定的高度的屏幕空间,这时图像会被压缩,特别是拍头像时会很明显,如图:接下来加上几个方法就OK 了,代码如下 1 2 3 4 5 6 7 8 9 10转载 2021-04-15 11:24:53 · 2015 阅读 · 0 评论 -
隐藏底部的虚拟按键
// 隐藏底部的虚拟按键 方法一 滑动屏幕 可重新显示出来 public static void hideBottomUIMenu(Activity activity) { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api View v = activity.getWindow..原创 2021-04-15 11:21:43 · 444 阅读 · 0 评论 -
Android开发 WebView新窗口中打开子链接
需求:识别链接,如果target=”_blank”,则调用系统浏览器打开该链接.WebView默认没有提供该功能,而WebViewClient里的shouldOverrideUrlLoading方法可以取得URL,再根据URL作相应的处理。所以,我们的思路是:用JS修改带target=”_blank”的链接,使其URL个性化,比如加个前缀什么的,在shouldOverrideUrlLoading方法中判断前缀,再处理.//外层布局<?xml version="1.0" encoding=原创 2021-04-08 10:41:25 · 2098 阅读 · 0 评论 -
Fragment的popBackStack出栈方法总结
使用FragmentTransaction#add/replace切换Fragment时,可以通过addToBackStack将当前提交中的事务压栈,这之后可以通过popBackStack将事务出栈,相当于将事务回滚到前一状态。popBackStack有多个重载函数,不同的参数决定了不同的出栈效果回退到前一状态getFragmentManager().popBackStack();回退到指定ID的状态FragmentManager fm = getFragmentM...原创 2021-04-07 15:13:03 · 1427 阅读 · 0 评论 -
仿微信视频通话大小视图切换(SurfaceView实现)
仿微信视频通话大小视图切换(SurfaceView实现)前言前一段时间做了一个即时通讯的项目,在项目中遇到很多坑,有时间一一做个总结,项目消息发送基于XMPP+Tigase,语言视频通话基于PJSIP+FreeSWITCH,项目UI仿微信。做到视频通话时,遇到本地视图与远程视图切换,网上搜了一篇相关的博客:https://blog.csdn.net/xuedaqian123/article/details/77878781,根据大神思路写了这个Demo,其中用的是第三直播源可能有点不稳..转载 2021-04-06 13:45:39 · 533 阅读 · 0 评论 -
Android 生成二维码
二维码的应用非常广泛,用途也很多,网上也有很多实用的精简包可以引入,本篇主要记录了不用引入新的module,自己集成生成二维码功能的过程。一、引入依赖首先在libs文件目录下放进jar包zxing.jar,然后引入依赖,sync。implementation files('libs/zxing.jar')也可以在file/project structure/app/dependencies中点击+号选择添加jar包二、集成工具类然后添加二维码工具类EncodingUtils.c.原创 2021-03-26 10:34:53 · 7196 阅读 · 2 评论 -
Android隐藏和显示输入法
public class InputMethodUtils { //如果输入法在窗口上已经显示,则隐藏,反之则显示 public static void showOrHide(Context context) { InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0,.转载 2021-01-21 17:58:52 · 476 阅读 · 0 评论