Android开发
文章平均质量分 55
Android_xiong_st
这个作者很懒,什么都没留下…
展开
-
(原创)可支持最大高度的NestedScrollView
最近写一个dialog,里面有一个ScrollView需要设置最大的高度但是发现ScrollView是不支持最大的高度。于是自己动手写一个出来。原创 2024-07-02 20:22:58 · 313 阅读 · 0 评论 -
(原创)从右到左排列RecycleView的数据
当我们写一个Recycleview时,默认的效果大概是这样的:当然,我们也可以用表格布局管理器GridLayoutManager做成这样:可以看到,默认的绘制方向是:从左到右,从上到下那么问题来了,如果我们想要控制列表项的布局方向,该怎么做呢?比如,我们要做出这样的效果:其实也很简单,我们可以这样初始化我们的GridLayoutManager:其中第三个参数reverseLayout参数是一个布尔值,用于控制列表项的布局方向。当将其设置为true时,布局将会反转,这意味着列表项将会从原创 2024-05-27 20:53:05 · 431 阅读 · 0 评论 -
(转载)BottomSheetBehavior实现底部弹窗
BottomSheetBehavior是Android Support Library23.2中引入的,它可以轻松实现底部动作条功能。转载 2024-03-29 18:43:59 · 172 阅读 · 0 评论 -
(原创)安卓跳转应用市场APP详情页的方式
最近在做一个需求,需要从自己APP进入到系统的应用市场方便用户在应用市场给自己的APP打分。于是查阅了一些资料,下面说一下实现方法。原创 2024-02-01 14:24:20 · 1901 阅读 · 0 评论 -
(原创)实现左侧TextView宽度自适应并且可以显示右侧TextView的布局
实现左侧TextView宽度自适应并且可以显示右侧TextView的布局原创 2023-10-20 20:13:31 · 709 阅读 · 0 评论 -
(原创)自定义DialogFragment以及解决其内存泄漏问题
日常开发中,dialog是常见的功能,我们时常需要弹出来一些弹框提示用户.今天就定义了一个方便的dialog基类BaseSimpleDialogFragment原创 2023-07-26 20:25:53 · 872 阅读 · 0 评论 -
(原创)自定义控件:写一个瀑布流效果
一个瀑布流的效果,用来展示文字标签,可以设置显示行数和超出行数的处理方式原创 2023-06-13 20:41:51 · 808 阅读 · 0 评论 -
(原创)Android apk应用加固、字节对齐、二次签名全流程
这篇博客主要是讲如何对apk应用进行加固、对齐和签名的,会有详细的步骤逐一介绍原创 2023-06-01 09:30:00 · 4262 阅读 · 0 评论 -
(转载)android studio设置jdk版本项目设置和全局设置
打开项目设置打开jdk设置选择jdk版本注意要apply保存然后运行,编译通过。转载 2023-03-17 19:03:23 · 4857 阅读 · 0 评论 -
(原创)Flow数据流的使用
Flow翻译过来,是“流”的意思原创 2023-01-05 22:03:34 · 1986 阅读 · 0 评论 -
(原创)Lottie动画使用介绍
我们都知道,安卓里面有三种基本的播放动画方式:帧动画,属性动画,补间动画今天介绍一种新的实现方式:Lottie动画Lottie是爱彼迎开源的一个动画框架。可以支持iOS、Android 和 React Native ,可实时渲染 After Effects 动画,让应用程序使用动画就像使用静态图像一样轻松。这波博客主要介绍基本的使用,文末也会贴上相关的资料。...............原创 2022-08-15 17:05:47 · 4379 阅读 · 2 评论 -
(原创)自定义Drawable
在日常的android开发中,我们会经常用到drawable资源比如设置icon:一般的drawable我们都是一张图但其实我们也可以像自定义View一样去自定义我们的Drawable自己定义的Drawable也可以绘制文字,形状,以及加入一些图片做成自己需要的样子本篇文章就通过实战来教你如何去自定义一个Drawable先看下效果图:..................原创 2022-06-25 19:04:34 · 2588 阅读 · 3 评论 -
(原创)Activity启动模式详解
前言四种启动模式standardsingleTopsingleTasksingleInstanceHome键和最近任务键taskAffinity原创 2022-03-28 17:51:15 · 696 阅读 · 0 评论 -
(原创)Databinding踩坑:3 字节的 UTF-8 序列的字节 3 无效
问题产生最近接手一个新的项目运行后发下跑不起来。一查,是build阶段出了点问题但是报错信息很有限,只查到这么一条提醒:3 字节的 UTF-8 序列的字节 3 无效问题定位一开始我以为是自己代码问题于是自己闷头查了好久还去问了其他的同事最后他们说他们可以正常运行奇了怪了。直到我去搜索这个问题才突然意识到他们用的是MAC而我用的是Windows这个错误,只在Windows系统上才会出现!就离谱所以在此记录下问题原因因为Databinding会在编译时根据xml在build原创 2022-02-22 17:52:52 · 411 阅读 · 0 评论 -
(原创)Java的Crash监控原理及监控工具
前言在进行实际的业务开发时,需要考虑到一些线上监控的需求比如内存占用,Crash记录。今天就来介绍下如何监控APP里面java的Crash情况。文末做了一个工具类可以直接拿来使用原理介绍其实Java层的Crash监控,做起来比较简单主要是要理解原理。那么我们就需要先看下,系统是如何监控Crash的Java中的Thread类中定义了一个接口: UncaughtExceptionHandler用于处理未捕获的异常导致线程的终止(注意:catch了的是捕获不到的),当我们的应用crash的时原创 2022-01-11 10:16:47 · 982 阅读 · 2 评论 -
(原创)手写一个图片裁剪工具
一个简单的图片裁剪demo,自定义裁剪View,支持旋转,缩放,裁剪等功能原创 2021-12-17 09:42:09 · 606 阅读 · 0 评论 -
(转载)Java里的注解
java注解-最通俗易懂的讲解转载 2021-11-10 17:03:19 · 121 阅读 · 0 评论 -
(原创)java的拷贝方式:对象拷贝,浅拷贝,深拷贝
由赋值语句导入对象拷贝在我们实际开发中,常常会用到简单的赋值语句=就比如下面这个例子: //赋值语句 基本数据类型 int a=3; int b=a; a=5; System.out.println(b); //赋值语句 String字符串 String s1="s1"; String s2=s1; s1="s2"; System.out.pri原创 2021-10-09 11:05:13 · 623 阅读 · 0 评论 -
(原创)java反射的介绍和使用
概述在实际开发中,有时候会用到反射技术很多人对此了解的不是很深今天就来做一个简单的介绍Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法。对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态获取信息以及动态调用对象的方法的功能称为java语言的反射机制。要想剖析一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法,所以要先获取到每一个字节码文件对应的Class类型的对象。具体有三种方式获取Class文件对象的三种方式具原创 2021-09-30 16:48:22 · 185 阅读 · 0 评论 -
(原创)内存泄漏分析解决方案(三):Memory Profiler介绍和使用
前言上一篇讲了使用LeakCanary检测和分析内存泄漏LeakCanary作为一个开源库,还是很好用的但其实我们Android Studio也提供了内存检测工具它的名字叫做Memory Profiler。这篇博客就带大家来认识它Memory Profiler使用首先我们来看怎么打开Memory Profiler在Android Studio中有两种方式打开Memory Profiler第一种通过标题栏打开,如图所示第二种通过下方菜单栏打开,如图所示使用的话也很简单,首先运行起你的原创 2021-06-19 17:39:02 · 3163 阅读 · 0 评论 -
(原创)内存泄漏分析解决方案(二):LeakCanary介绍和使用
前言上一篇我们讲了内存泄漏的情况和解决方案但是在实际开发中,我们是很难通过肉眼去直观定位内存泄漏问题的这时候就需要用到一些工具这次讲到的,就是一款名为LeakCanary的工具什么是LeakCanaryLeakCanary是一个用来检测Android内存泄漏的框架,作为一个实用工具,我们可以用它来定位和收集项目中存在的内存泄漏问题LeakCanary更新到现在,目前的集成和使用已经比较简单了。下面开始介绍它的使用方法。LeakCanary使用正式开始使用前,需要导入依赖,目前我使用的是原创 2021-06-18 20:22:14 · 1918 阅读 · 0 评论 -
(原创)分享一些推荐的进程保活方式
之前有做过1像素保活1像素保活后台服务现在2021年了,很多保活方式其实已经过时了谷歌对于这方面的掌控也越来越严而且作为开发者,其实也不建议应用长时间的驻留内存搞得和流氓软件一样。但一些实际场景,的确是需要进程保活的功能的比如跑步,聊天,外卖软件等等这几天也在搜集相关的知识最后整理了下发现有三种方式,还是比较能够提升app的存活率的而且都是提示用户手动去开启的方式不是利用系统漏洞之类的取巧方法显得优雅了很多。我大概整理了下,分别是1后台运行白名单原创 2021-04-23 10:11:12 · 1441 阅读 · 0 评论 -
(转载)Android花样Text,设置TextView的字体、颜色、超链接等
Android花样Text设置神器之SpanableString转载 2021-04-14 14:05:07 · 428 阅读 · 0 评论 -
(原创)Android事件分发机制详解
之前有些过一篇简单的博客解决滑动冲突问题今天对冲突背后的事件分发机制,做一个详细的介绍下面开始!Android的事件分发机制相关的类:dispatchTouchEvent()、onInterceptTouchEvent()、onTouchEvent()分别用于事件分发、事件拦截和事件处理一、事件分发的执行顺序流程图(默认情况下,不考虑事件拦截和处理)如上图,事件的分发顺序由1开始依次分发到8。事件分发的规则,隧道式下发。在ViewGroup中如果有N..原创 2021-03-25 14:22:30 · 4282 阅读 · 0 评论 -
(原创)SurfaceView介绍和使用
我们都知道Android中是在主线程绘制UI的如果我们可以在16ms以内将绘制工作完成那么将没有问题但如果我们绘制过程逻辑很复杂,并且我们的界面更新还非常频繁,这时候就会造成界面的卡顿,影响用户体验,为此Android提供了SurfaceView来解决这一问题。SurfaceView 一方面可以实现复杂而高效的UI,另一方面又不会导致用户输入得不到及时响应。下面用一个简单的示例来展示用法public class MySurfaceView extends .原创 2021-02-04 14:58:24 · 1026 阅读 · 0 评论 -
(原创)视频播放器的手势控制工具类
最近在做一个视频播放器现在市场上,一个比较完善的视频播放器大概具有以下功能:快进、快退、声音、亮度控制这一次就根据这几个基础的功能通过系统的手势控制类GestureDetector来完成做了一个实用的工具类只需要简单的配置就可以实现对视频播放器控件的手势进行监听工具类内部实现了相关功能,不需要视频播放器自己写实现了代码解耦,也方便复用下面就开始介绍这个工具类的使用,以及实现的原理。先把工具类的实际代码贴上来public class VideoGes.原创 2021-01-25 15:56:07 · 3166 阅读 · 4 评论 -
(转载)Android:6种方式让你高效 & 正确地获取View的坐标位置
前言获取 View 坐标在 Android 开发中非常常见。今天carson将详细给大家讲解 获取 View 坐标常用6种方式:getLeft()、getTop()、getRight()、getBottom() getX()、getY()、getRawX()、getRawY() getLocationOnScreen() getLocationInWindow() getGlobalVisibleRect() getLocalVisibleRect()方式1:getLeft()、getT原创 2021-01-16 15:04:25 · 3448 阅读 · 0 评论 -
(原创)安卓setAlpha方法需要注意的地方
setAlpha主要是用来处理控件的透明度的入参为一个0-255的int类型或者一个0.0f-1.0f的float类型但是具体使用时发现如果给父布局使用该方法会导致父布局内的子控件透明度也发生变化这时候其实不应该使用setAlpha方法而是给父布局的背景设置一个透明度具体可以用shape或者颜色值来设置比如“#30000000”就代表一个透明度为30%的黑色背景...原创 2020-12-25 17:47:25 · 2182 阅读 · 0 评论 -
(原创)长日志打印工具
分享一个长日志打印工具AS中如果日志过长,是无法一行全部打印出来的,这时候就可以用到这个工具具体代码如下public class LogUtil { //规定每段显示的长度 private static int LOG_MAXLENGTH = 2000; public static void d(String TAG, String msg) { int strLength = msg.length(); int start = 0;原创 2020-12-19 17:51:39 · 346 阅读 · 2 评论 -
(原创)一个网络设置工具类
封装了一个简单的网络工具类原创 2020-11-27 10:07:52 · 321 阅读 · 0 评论 -
(原创)两个播放音频的工具类
最近做了两个用来播放视频文件的工具类一个是用来播放背景音或者较大文件的工具类另外一个是播放普通音频的工具类下面贴代码/** * 播放背景音等较长或者较大的文件 */public class MusicBackPlayerUtil { private MediaPlayer bgPlayer, btPlayer, soundPlayer; public MusicBackPlayerUtil() { bgPlayer = new MediaPlaye原创 2020-10-27 11:20:50 · 607 阅读 · 0 评论 -
(原创)判断List列表中是否存在重复元素
今天碰到一个实际问题如何判断一个List列表中的元素是否有重复的想到不可能一个个去对比于是去查了下,发现可以利用HashSet的特性去做因为Set集合中是不允许存在重复元素的于是得到如下处理方式 /** * 列表中是否包含重复元素 * * @param list * @return */ public static boolean isRepeatList(List list) { if (list =原创 2020-09-17 16:22:37 · 4163 阅读 · 0 评论 -
(原创)Android不打印log,出现read: Unexpected EOF问题解决方式
今天碰到一个AS不打印日志的问题报错信息为:read: Unexpected EOF经过查询,发现在Android8.0后连接电脑只要日志打印频繁且量大就经常看到错误[ read: unexpected EOF! ]只要出现这个错误时Logcat就停止打印了(特别是在AndroidStudio中正当调试时突然出现这个问题)8.0以前也会报错只是系统默认丢掉多的数据...原创 2020-09-15 17:36:07 · 2154 阅读 · 4 评论 -
(原创)数据库的使用以及简单的工具类封装
安卓中数据库的使用是很常见的,今天在介绍的基础上,去做一个简单的封装。把数据库的表作为一个类,同时封装一个工具类,用来操作数据库的这个表。实现基础的增删改查功能。原创 2020-08-31 17:48:28 · 827 阅读 · 0 评论 -
(原创)内存泄漏分析解决方案(一):内存泄漏的几种情况解决方式
Android开发,内存优化是一个很重要的问题,今天就对这方面的问题,做一个较为详细的说明在讲内存优化之前,先要将堆栈说清楚原创 2020-07-17 11:08:42 · 1587 阅读 · 0 评论 -
(原创)分享自己写的几个工具类(十二)判断是否是手势导航栏工具类
现在市场上很多机器支持手势导航,如何适配成了一个话题这里提供一个判断方法得到目前界面是那种导航类型话不多说,直接上代码public class NavigationUtils { /** * 手势导航 */ public static int NAV_STYLE_GESTURE = 1; /** * 三键导航 */ public static int NAV_STYLE_THREE_KEYBROAD = 2;原创 2020-06-26 15:16:37 · 1088 阅读 · 2 评论 -
(原创)Bitmap工具类集合
这边做一个博客,专门用来放一些Bitmap的基本操作方法缩放public static Bitmap ScaleBitmap(Bitmap bit,float sx,float sy){ Matrix matrix=new Matrix(); matrix.setScale(sx,sy); Bitmap newBmp =Bitmap.createBitmap(bit, 0,0,bit.getWidth(),bit.getHeight(),matrix原创 2020-05-18 20:15:46 · 1022 阅读 · 0 评论 -
(原创)方法调用定位
今天分享一个开发小技巧在定位一些问题的时候会遇到一个方法在代码里被好几处调用这个时候想要知道复现情况下是那个地方调用了这个方法就比较麻烦总不能每个调用的地方都打上日志其实可以用这个方法:在这个被调用的方法里面加上这样一行代码new IllegalStateException("方法调用").printStackTrace();参数里面可以随便写点东西自...原创 2020-03-11 11:15:50 · 387 阅读 · 0 评论 -
(原创)分享自己写的几个工具类(十一)配置文件的操作工具类
上一篇分享了记录本地日志的工具类https://blog.csdn.net/Android_xiong_st/article/details/102776170这次来介绍配置文件的一些操作有时候app会有一些随机操作比如游戏里的道具出现概率等而如果让它固定出现则可以通过配置文件的方式话不多说,直接上代码public class ConfigUtil { p...原创 2019-12-03 14:33:29 · 278 阅读 · 0 评论 -
(原创)接口隔离原则封装一个自己的网络请求库(五)文件上传功能
下载文件写完了接下来就是上传文件了继续完善!首先,在我们的基础接口INetManager里新增方法postFile复写这个方法用来上传文件代码如下:/** * Created by lenovo on 2019/11/8. * 网络请求工具类 */public interface INetManager { /** * @param url ...原创 2019-11-14 14:54:54 · 280 阅读 · 0 评论