自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (6)
  • 收藏
  • 关注

原创 Android 自定义通知样式(回复、点赞)

Android 自定义通知样式(回复、点赞)

2024-04-08 10:59:57 182 2

原创 Android MediaPlayer 实现读秒播放音频

Android 语音播放

2024-04-08 10:10:34 114

原创 Android 网络状态判断

2.1我们通过ConnectivityManager可以获取状态,但是我们需要考虑到Android版本不同获取方式不同。NetworkCapabilities.NET_CAPABILITY_INTERNET:判断是否连上网。NetworkCapabilities.TRANSPORT_WIFI:表示接入的是WIFI网络。判断当前是否能上网,但是发现小米11Android12添加证书后,一直是false。华为手机,在使用过程,网络状态不准确)1、获取网络信息,首先需要获取权限。

2023-12-22 14:05:22 1248

原创 Android app保活(前台服务)

国内厂商定制,除非厂商给app白名单,否则只能用户手动添加白名单(应用自启和后台运行),才能通过前台服务实现app保活。这里介绍前台服务相关实现方式。

2023-09-05 11:57:50 1054 2

原创 Android 设置app深色、浅色、跟随系统

我们需要再用户设置时候,记录下来,用户的设置,等app再次启动时候,获取之前设置,重新设置。2、获取当前Activity是否开启深色。4、深色浅色切换时候,重启app。1、设置单个Activity。3、webView设置。

2023-08-24 11:07:48 1663

原创 Android 保存图片

如果需要BItmap与InputStream相互转换可以参考。保存图片我们需要考虑系统版本,Q前后还是不一样的。这个主要讲的InputStream去保存。

2023-08-24 10:40:43 576

原创 Android Bitmap压缩

我们在实际使用中,往往图片转化成Bitmap,对Bitmap操作的时候(如:截屏分享等),可能Bitmap会过大,导致无视实现对应功能。那么我们就需要对Bitmap进行压缩处理。

2023-08-23 15:04:46 569

原创 Android View截屏长图拼接(RecyclerView)

RecyclerView截屏,其实就是遍历每个itemView,得到每个itemView的Bitmap,然后拼接成一个Bitmap。

2023-08-23 14:51:53 760

原创 Android Bitmap、InputStream、Drawable、byte[]、Base64之间的转换关系

【代码】Android Bitmap、InputStream、Drawable、byte[]、Base64之间的转换关系。

2023-08-21 14:59:06 844

原创 ViewPager2嵌套ViewPager2(RecyclerView)滑动事件冲突

然而我们通过源码发现:getParent().requestDisallowInterceptTouchEvent(boolean)是决定是否拦截事件。官方通过get获取NestedScrollableHost第一层包裹的冲突View,如果冲突View层级深就会有问题。ViewPager+ViewPager就不会产生冲突,那是应为,官方ViewPager帮我们已经处理过,但是。java:我们通过getChildView()遍历拿到底层冲突View,可以完美解决滑动冲突问题。

2023-08-04 11:51:25 2285 1

原创 基于TabLayoutMediator实现TabLayout+ViewPager2(Fragment)封装

①、动态设置TabView(setTabViewResId),TextView动态设置IdseTabViewTextResId(),并获取TextView对象。④、UserTabSelectedListener,获取TabLayout切换时候监听回调,包含切换前后上个item position。⑤、设置和更新 未读数和小红,包含是否开启初始化后立马显示未读数和小红点,也可以网络请求后设置。⑥、TabView支持选中字体加粗、字体大小、颜色,未选中字体加粗、字体大小、颜色。

2023-08-03 19:01:28 1116

原创 Android View截屏长图拼接(NestedScrollView)

NestedScrollView只有一个childView,虽然没有全部显示在界面上,但是已经全部渲染绘制,因此可以直接 调用NestedScrollView.draw(canvas)来完成截图,具体看代码逻辑。

2023-07-18 18:58:46 353

原创 Android View 截屏上下拼接

【代码】Android View 截屏上下拼接。

2023-07-18 18:55:23 189

原创 居中Item两边各显示一部分

ViewPager、RecyclerView实现两边各留一部分区域给其他item显示。

2023-06-13 17:43:13 285

原创 Android获取本地相册中图片视频

这里,我们需要注意,因为android10以后版本不能通过File来获取图片文件,所以我们需要通过Uri来讲图片文件转到沙箱文件中,来压缩等操作。如果是AndroidQ一下,其实我们再获取图片封装对象里面,就已经得到Path,可以直接使用。其实,视频跟图片获取逻辑也是一样,主要查询字段不一样来区分,获取视频还是图片。其实视频,我们会涉及到一个问题,就是封面展示的问题。第二种:获取视频文件第一帧,作为封面。第一种:直接通过Gilde做展示。第三种:获取数据库中视频的封面。都是通过相册数据库获取对应数据。...

2022-08-26 19:18:17 2822 1

原创 EditText hint内容居右,光标居右

EditText hint内容居右时候,光标居左问题。

2022-08-06 14:24:27 1263

原创 Android深色模式适配

Android深色模式适配

2022-06-23 15:28:03 2550

原创 Android页面View截图(分享、保存相册)

方法一:通过系统方法获取图片Bitmap实现分享(Deprecated) @Deprecated public static Bitmap loadBitmapFromView(View view) { Bitmap drawingCache; if (true){ //方法一: view.setDrawingCacheEnabled(true); drawingCache = vie

2022-03-24 13:04:18 3832

原创 Android h5(分享页面)唤醒app,并跳转指定界面

现在基本所有h5流量都会往自家app导入流量。所以我们常见会发现浏览器打开网页、微信分享文章扥等都有打开app的按钮1、app代码<activity android:name=".AwakenActivity" <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.categ..

2022-01-20 12:38:55 5564

原创 Android 越界回弹(支持水平和垂直方向)

1、直接上图:2、直接上代码public class DampingReboundLayout extends ViewGroup implements NestedScrollingParent3, NestedScrollingParent2, NestedScrollingChild3, NestedScrollingChild2, NestedScrollingParent, NestedScrollingChild { private st.

2021-11-01 11:50:21 1495

原创 Andorid RecyclerView 局部刷新--倒计时

前面我们介绍RecyclerView局部刷新功能实现,我们可以利用局部刷新功能实现倒计时功能。倒计时其实就是每个1秒去刷新TextView,实现时间变化,然而在RecyclerView itemView 复杂时候,我们全局刷新,往往会造成性能损耗,所以我们采用局部,只刷新TextView 一个控件来实现倒计时功能1、handler + recyclerView 来实现列表倒计时handler用来延迟一秒实现倒计时效果,通知RecyclerView刷新单个条目TextView时间...

2021-10-18 16:03:12 263

原创 Android 弹幕(bilibili-DanmakuFlameMaster)—1

1、地址:DanmakuFlameMaster2、依赖:implementation 'com.github.ctiao:DanmakuFlameMaster:0.9.25'implementation 'com.github.ctiao:ndkbitmap-armv7a:0.9.21'// Other ABIs: optionalimplementation 'com.github.ctiao:ndkbitmap-armv5:0.9.21'implementation 'com.gith

2021-10-14 11:05:16 1248 1

原创 Android 透明度对应色值

100% — FF99% — FC98% — FA97% — F796% — F595% — F294% — F093% — ED92% — EB91% — E890% — E689% — E388% — E087% — DE86% — DB85% — D984% — D683% — D482% — D181% — CF80% — CC79% — C978% — C777% — C476% — C275% — BF74% — BD73% — BA72%

2021-09-27 15:20:39 380

原创 Android RecyclerView 局部刷新

我们在列表数据更新某一个状态:1、往往由于Item view 中包含有图片,自然而然图片(Glide)刷新,这样会有闪一下效果,用户体验不是很好。2、界面会重绘,由白白损耗性能。那么RecyclerView 有没有一种只刷新某一个View呢?其他在源码中是有的。两个都是 onBindViewHolder只是参数不一样,实际上payloads这个参数就是用来区分局部刷新的。我们只需要在adapter 重新这两个方法。我们只需要在调用做区分就可以了。总结:1.

2021-08-25 19:27:19 824

原创 Android View 关于OnLongClickListener

View的OnLongClickListener事件实现原理是什么,又是如何触发(postDelayed),长按时间多久呢(0.4s)?1、通过源码我们发现View.setOnLLongClickListener()方法中: setLongClickable(true); getListenerInfo().mOnLongClickListener = l;public void setOnLongClickListener(@Nullable OnLongClickListe...

2021-08-05 14:56:31 887

原创 Android 开发多行TextView背景色

我们在开发文字背景色时候,往往ui设计稿是背景色只是文字区域,但是系统自带的BackgroundColorSpan 无法达到这样效果,所以我们需要自定义背景色。|贴上自定义BackgroundColorSpan代码:public class BetterHighlightSpan extends ReplacementSpan { private int backgroundColor; //行间距 private int lineSpacingExtr.

2021-08-03 18:03:55 578 2

原创 Android EditText java 设置 maxLength

我们在开发过程,经常会遇到EditText 设置可输入内容长度,但是发现java代码没有set方法,通过源码,我们发现InputFilter的妙用所在。在TextView中我们发现maxLength默认值为-1,并且当mxLength大于等于0才会设置LengthFilterif (maxlength >= 0) { setFilters(new InputFilter[] { new InputFilter.LengthFilter(maxlength) });} else {

2021-08-02 15:35:37 2706

原创 Android span 图文混合效果--图片居中显示

TextView 添加图片往往UI要的效果是居中,下面将图片居中,同时添加图片与文字的间距。public class CenterSpaceImageSpan extends ImageSpan { //左边距 private int mMarginLeft = 5; //右边距 private int mMarginRight = 5; public CenterSpaceImageSpan(Drawable drawableRes) {...

2021-08-02 14:38:21 552

原创 Android EditText 不得不说的InputFilter、TextWatcher、ActionMode.Callback、OnEditorActionListener

开发过程中,输入内容往往会遇到各种奇葩的限制输入1、editText.setFilters() editText.setFilters(new InputFilter[]{new InputFilter() { /** * editText 内容不变处理 * @param source 变化的字符串 * @param start 变化字符的首字符下标

2021-06-07 11:58:14 554 1

原创 Android 10 TextView 内容显示不在同一水平线上

<LinearLayout android:layout_width="match_parent" android:layout_height="100dp" android:orientation="vertical"><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:...

2021-05-13 18:32:30 308

原创 Android 实现表情功能(Dialog)

Dialog实现表情评论功能核心问题:1、如何得到键盘弹起和隐藏状态2、在于表情和键盘切换时候,防止Dialog抖动问题1:由于无法获取键盘弹起状态,但是键盘弹起,View尺寸变化,同时被onSizeChanged()调用。View 源码: /** * This is called during layout when the size of this view has changed. If * you were just added to the view ..

2021-05-12 18:17:17 482 1

原创 Android 实现震动功能(Vibrator)

1、权限:<uses-permission android:name="android.permission.VIBRATE" />2、实现震动//BaseConstantValue.VIBRATE_TIM 震动时间 if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) { vibrator = (Vibrator) context.getSystemService(Service.VIBRATOR_S.

2021-05-12 14:38:57 645

原创 Android 播放音频 (MediaPlayer、SoundPool )

Android 播放音频一般有两种方式:ps:这里只介绍基本使用,后续会详细介绍1、MediaPlayer播放器(同时只能播放一个音乐. 可以播放大文件. 播放背景音乐)MediaPlayer mediaPlayer = new MediaPlayer();mediaPlayer.setDataSource(context,R.raw.test);mediaPlayer.prepare(); // 准备.mediaPlayer.start(); //播放或者/** *无需me

2021-05-12 14:20:19 668

原创 Android span 文字背景色、前景色、圆角

1、可参考:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0305/2535.html2、自定义 设置文字背景色、前景色、圆角度public class BackgroundSpan extends ReplacementSpan { private int textColor; private int bgColor; private int radius = 0; private int.

2021-04-26 17:27:38 1021

原创 Android webSocket(okhttp-4.9.0)

开发过程,部分需要webSocket,这里使用 okhttp 自带socket。一、依赖:com.squareup.okhttp3:okhttp:4.9.0二、创建webSocket1、创建okhttpClient和Requestpublic void init(){ //初始化okhttpClient mBuilder = new OkHttpClient.Builder(); //设置读取超时时间 mBuilder.readTimeo

2021-04-26 17:24:41 712 1

原创 AppBarLayout+RecyclerView 处理快速滑动RecyclerView后,点击AppBarLayout无法停止滑动趋势问题

AppBarLayout+RecyclerView滑动趋势问题,一直是google官方的bug,至今尚未修复。废话不多说,直接上代码1、xml文件 <com.google.android.material.appbar.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content"

2021-03-25 18:06:55 687

原创 Android View 跑马灯效果

TextView 跑马灯效果 文字内容长度大于控件自身宽度时候,开启跑马灯效果public class AutoPollTextView extends View { private int textColor; private int textSize; private Rect rect; private TextPaint paint; private String contentStr = ""; private String showCon.

2021-03-25 13:47:27 135

原创 Android 极光各厂商配置

废话不多说,直接上地址:https://www.yuque.com/books/share/5791dcf9-177f-4065-a2cd-d9143fec68f5/qicgow

2021-03-24 15:19:36 246

原创 Android 悬浮窗

一、权限: <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />二、悬浮窗其实就是 WindowManager.addView(view,layoutParams),直接上代码1、单例创建FloatWindowManager/** 悬浮Manager*/public class FloatWindowManager { private volatile static.

2021-03-24 15:09:14 523

原创 Android BottomNavigationView 底部导航

AndroidDesign Support Library 25 中增加了BottomNavigationView这个控件。该控件可以为我们很方便提供底部导航,下面我们介绍一下该控件。1、依赖:build.gradle文件中增加依赖compile 'com.android.support:design:25.3.1'2、xml文件:<android.support.design.widget.BottomNavigationView ...

2021-03-24 14:34:52 2462

移动联盟oaid-demo压缩包(包含:文档、apk、aar)

移动联盟oaid压缩包

2022-04-06

阿里巴巴java开发手册1.4.0(详尽版)

《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总 结,经历了多次大规模一线实战的检验及不断完善,系统化地整理成册,回馈给广大 开发者。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编 程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:数据库的表结 构和索引设计缺陷可能带来软件上的架构缺陷或性能风险;工程结构混乱导致后续维 护艰难;没有鉴权的漏洞代码易被黑客攻击等等。所以本手册以 Java 开发者为中心视 角,划分为编程规约、异常日志、单元测试、安全规约、MySQL 数据库、工程结构、设 计规约七个维度,再根据内容特征,细分成若干二级子目录。根据约束力强弱及故障 敏感性,规约依次分为强制、推荐、参考三大类。对于规约条目的延伸信息中,“说 明”对规约做了适当扩展和解释;“正例”提倡什么样的编码和实现方式; “反例” 说明需要提防的雷区,以及真实的错误案例。

2019-03-06

阿里巴巴Android开发手册1.0

阿里巴巴集团各大 Android 开发团队的集体智慧结晶和经验总结,将淘宝、天猫、闲鱼、钉钉等 App 长期开发迭代和优化经验系统地整理成册, 以指导 Android 开发者更加高效、高质量地进行 App 开发,呈现给用户体验好、性能优、稳定性佳、安全性高的产品。

2019-03-06

Xutils3 jar

Xutils3 方便大家使用,需要详细说明,可以去git

2016-01-23

日期控件,值得你拥有

简单,方便,实用,自定义日期控件,可以根据,你的需要,添加到你的项目中,很实用的。

2015-01-11

指针项目,开源项目 很详尽

开源框架中,指针项目,

2014-12-31

空空如也

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

TA关注的人

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