- 博客(175)
- 收藏
- 关注
原创 android studio 中使用kotlin语言 直接操作布局id
(会自动生成,可忽略)然后在 Activity 文件中 引入 对应的 layout 文件 如:activity_main.xml。android studio 中使用kotlin语言 直接操作布局id。需要在 build.gradle 文件 引入。
2024-02-22 09:48:23
1022
原创 Android ImageView如何使用.svg格式图片
我们知道imageview常用的图片格式是.jpg/.png或者drawable里的部分.xml文件。但有时UI会给过来.svg格式的文件,下面讲解如何使用.svg格式图片文件。
2023-12-27 11:28:30
1358
原创 带返回值的Intent startActivityForResult()废弃/过时,替代为registerForActivityResult()简介
startActivityForResult()废弃/过时后,我们可以用registerForActivityResult()替代。
2023-12-27 11:05:53
968
原创 MMKV 数据存储(零拷贝技术)
MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能和稳定性经过了时间的验证。近期也已移植到 Android / macOS / Win32 / POSIX 平台,一并开源。MMKV 原理内存准备通过 mmap 内存映射文件,提供一段可供随时写入的内存块,App 只管往里面写数据,由操作系统负责将内存回写到文件,不必担心 crash 导致数据丢失。数据组织。
2023-12-19 10:53:30
586
原创 微信小程序
1、目录文件介绍2、wxml设置数据和js修改数据3、点击事件wxml<view> Hello {{name}}! </view> <button bindtap="changeName"> Click me! </button></view>jsPage({ changeName(){ this.setData({ name:'MINA' }) }..
2023-11-29 15:01:31
1517
原创 Android 12 intent-filter添加android:exported后任然报错解决方法
3.打开AndroidManifest.xml,从中找到 涉及intent-filter过滤器且没有设置 android:exported 属性的 Activity/Service/Receiver,把它们复制到自己项目的AndroidManifest.xml文件中,并添加上android:exported 属性。所以,我们按一下步骤排查三方库哪些activity、service或receiver使用了intent-filter,但却未声明android:exported 属性。
2023-11-14 10:13:43
1253
原创 Android studio/AS无法识别模拟器
as选择底部terminal定位到sdk中platform-tools文件夹所在位置,我的是D:\sdk\platform-tools>;然后来个adb connect ip(个模拟器ip如下)夜神模拟器:adb connect 127.0.0.1:62001逍遥安卓模拟器:adb connect 127.0.0.1:21503天天模拟器:adb connect 127.0.0.1:6555海马玩模拟器:adb connect 127.0.0.1:53001网...
2021-06-24 11:40:06
763
原创 Bitmap图片压缩、图片副本及特效处理、画板功能(保存相册刷新)、刮刮奖
图片压缩:原理:1、获取图片宽高 和 手机屏幕宽高2、获取图片宽与手机宽 ,图片高与手机高比值中较大的作为缩放比例,对图片进行压缩代码如下:public class BitmapUtil { public static Bitmap ratio(Resources res, int id, int pixelW, int pixelH) { Bitm...
2020-05-21 00:00:58
380
原创 安卓应用下载自动安装代码
转载请注明出处:https://blog.youkuaiyun.com/mr_leixiansheng/article/details/78054700作用:下载应用、安装应用代码如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://sc...
2020-05-21 00:00:45
1611
1
原创 AIDL进程间通信
AIDL:进程间的通讯(一个APP与另一个APP交互)本例子以一个App作为支付应用,另一个App调用支付APP内的支付方法,以此实现进程间的通信。效果图如下:第一种是启动支付APP后再调用,第二种时未启动APP直接调用。虽然第二种调用没有和用户交互,支付APP内部的方法其实是已经实现了,可以冲Log看出。 第一种方式打印log如下:打开支付调用APP打印出日志,表示...
2020-05-21 00:00:08
381
原创 图片打水印
官网:https://github.com/huangyz0918/AndroidWM三方引入:implementation 'com.huangyz0918:androidwm:0.2.3' private void createWaterMark() { //打文字水印 WatermarkText watermarkText = new Water...
2020-05-20 23:59:45
737
原创 如何遍历Map数组
方法如下:public static void main(String[] args) { //新建Map然后填入数据 Map<String, String> map = new HashMap<>(); map.put("key_one", "one"); map.put("key_two", "two"); map.put("key_
2020-05-20 23:59:21
696
原创 Bugly功能详解:异常上报、APP自更新、热修复
异常收集上报集成SDKdependencies { compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.2.0}在AndroidManifest.xml中添加权限:<uses-permission an...
2020-05-20 23:59:06
1374
原创 推送——个推
内容:介绍个推接入及使用步骤如下:1、项目gradle中添加maven库地址 //Maven URL地址 maven { url "http://mvn.gt.igexin.com/nexus/content/repositories/releases/" }2、app.gradle配置依赖dependencies...
2020-05-20 23:58:52
943
原创 安卓崩溃异常处理及App重启
内容:优雅地处理崩溃问题,崩溃时给予用户提醒,然后重新启动app,增强用户体验感(当然,不崩溃才是最好的体验,汗)。未处理崩溃时的效果图:处理后崩溃时的效果图:就不写步骤了,直接说下逻辑思想。其实就是拦截系统的崩溃处理,自己进行处理。重点在实现UncaughtExceptionHandler和在其uncaughtException(Thread thread, Throwabl...
2020-05-20 23:58:28
1748
1
原创 MobShare(三方登录、分享)(还包括:三方支付、IM、录屏等)
介绍一款很强大的三方框架Mob,这里涉及到了它的三方登录,一键分享功能,更多功能查看其官网Mob的集成方式有两种:方法一是通过导入jar包及对应资源文件。方法二是快速集成。强烈推荐方法一,因为后期肯定要对分享界面九宫格进行修改,方法二不支持!先上图:这里是一键分享功能这里是三方登录/授权方法一:jar包导入方式1、进入官网下载shareSDK,解压。...
2020-05-20 23:57:53
2065
原创 多线程断点下载原理解析
原理:1、将一个任务等分成几个小部分2、开多个线程每个负责一个,记录每个线程其开始位置和结束位置3、分别写入同一个文件,也是按起开始位置和结束位置写入。同时在下载时创建临时文件记录这次下载到哪儿4、下载前看是否有上次记录,有则接着从后面下载public class MainActivity extends AppCompatActivity { @BindView(R...
2020-05-20 23:57:16
505
原创 NestedScrollView复杂布局,可同时包含横竖RecyclerView(淘宝)
内容:NestedScrollView布局是继承了ScrollView,同时又解决了ScrollView嵌套listView/RecyclerView只显示一条的问题。使用NestedScrollView可以进行复杂的布局,上图布局就是NestedScrollView嵌套了一个纵向滑动的RecyclerView、一个TextView和一个横向滑动的RecyclerView。布局如下:aitivit...
2020-05-20 23:56:18
762
原创 RecyclerView嵌套RecyclerView布局实现
内容:一个垂直的RecyclerView嵌套一个横向的RecyclerView代码如下:Main布局这里只包含了一个RecyclerView布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/andro...
2020-05-20 23:56:04
2800
1
原创 搜索记录、搜索历史
内容:像淘宝搜索栏一样,将搜索过得内容保存并显示在搜索历史代码如下:布局:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.and...
2020-05-20 23:55:47
594
1
原创 多种数据存储详解(SharedPreferences、文件存储、网络存储、数据库、ContentProvider)获取剩余SD卡大小
一般数据存储包含以下五种:SharedPreferences、File内部存储、外部存储、网络存储、数据库效果图:代码如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" andr...
2020-05-20 23:54:32
345
原创 线程使用简介
1、耗时操作都需要使用到线程。2、开启线程的活动结束后线程未被关闭的话依旧在运行1)线程的常规操作代码如下: @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.lay...
2020-05-20 23:54:01
257
原创 style样式和them主题
效果如下:style:为什么要引入,例如我们在做布局时,有很多控件大小、宽度、颜色都一样,我们复制起来很爽,但是一要修改就特别痛苦,引入style后,要修改十分方便。并且style还可以被其他新style继承重写,做部分修改也是相当快捷如何设置syle:(以一个文本为例)1、在value资源文件中找到style.xml2、设置好所需的属性(注意只能手打,千万不要复制,否则报错,...
2020-05-20 23:53:13
352
原创 语言切换--国际化
最常见的就是中英文切换补充:图片也可以做国际化->比如各国国旗(通过drawable-xxx)效果如下:步骤如下:1、res右键,按照下面操作中所需语言即可2、再将之前strings.xml复制到新建的value-en 和 value-zhstrings.xm(zh)<resources> <string nam...
2020-05-20 23:52:54
392
原创 App一键换肤功能
实现应用皮肤随意切换,这里只做基础展示,一个是常规肤色,一个是夜晚模式肤色效果如下:步骤如下:1、引入换肤三方框架2、在Application中对换肤SkinCompatManager进行初始化3、在main下新建自己对应肤色res文件夹(后缀可自定义,此列举res-night),和res-night下的子项资源,注意color和drawable下的命名尾部都必须跟上 ‘ ...
2020-05-20 23:52:25
1439
1
原创 图片压缩Luban
内容:对图片进行压缩,可指定忽略压缩图片大小和压缩后图片保存位置。在此对多图、图组进行二次封装,使用更方便Luban原理:使用了Bitmap基础的压缩策略,可见:Bitmap图片压缩、图片副本及特效处理、画板功能(保存相册刷新)、刮刮奖Luban关键代码:计算压缩比例、设置旋转源码:File compress() throws IOException { BitmapFa...
2020-05-20 23:51:36
1049
原创 Recyclerview进阶——元素拖拽及侧滑删除
之前一直觉得列表的拖拽换位和侧滑删除是很难实现的,不过之后参考了下几篇博客后发,发现还是很简单的,因为suppor早就封装好了,最主要的是继承ItemTouchHelper.Callback,并对其方法效果图如下:步骤如下:1、新建类并继承ItemTouchHelper.Callback,在其对应方法设置相应操作包括,不同布局的拖拽和侧滑删除,选择效果2、Adapter中实现自...
2020-05-20 23:51:18
1570
原创 启动页全面屏适配、状态栏和虚拟按钮控制详解
很多APP打开都会有启动界面,但是全面屏问世后就会有很多问题出现。我们这里采用更快更高效的启动方式通过them设置,通过介绍笔者在实际项目开发中遇到的问题和解决方法,让大家更深入了解them、全面屏适配、虚拟按钮与状态栏控制。当然,有小伙伴非要自己去定义xml页面作为启动。。。这篇文章你也可以作为储备技能拓展遇到问题问下:1、Them是什么东西,如何设置Them可以隐藏状态栏和虚...
2019-12-11 17:00:26
1070
原创 Android 多种截屏方式介绍
做项目的时候遇到截图的功能要求(部分截图、截长图),感觉挺有意思的,所有下来查阅了下资料,学习了下原理。在此记录下,供大家参考效果图:原理:计算好图片的宽度与高度,通过Bitmap 于Canvas 绘制好即可,不同之处是获取宽高方式不同。关键代码如下:整个屏幕截屏(不包含状态栏) public Bitmap screenShot() { View v...
2019-12-11 14:02:14
3307
2
原创 CodeEditView 短信验证码框
原理:自定义布局,包含一个EditText 和多个 TextView ,EditText隐藏看不见,可以判断是否达到指定位数。通过for循环取值EditText中的字符,再new出新的TextView对象,并填入对应数值即可。核心代码入下:CodeEditViewpublic class CodeEditView extends LinearLayout impl...
2019-10-14 17:14:48
444
原创 ViewFlipper 模仿广告滚动(横向/竖向)展示栏
效果如下图:之前一看到滚动展示第一反应就是想到RecyclerView动态滚动,但是发现不常用的 ViewFlipper 解锁了新姿势,因为它也可以实现,而且更方便、更快捷,代码简单废话不多说,直接上代码步骤:1、在xml 中添加 ViewFlipper 控件,设置好其属性,其重要属性如下:android:autoStart: 设置自动加载下一个Viewandroid...
2019-09-04 14:39:45
516
原创 SwipeMenuLayout列表侧滑菜单
效果图如下:1、引用SwipeMenuLayout类,网上一搜一大堆2、布局中引用SwipeMenuLayout作为父类,其子类只能包含连个View或者ViewGroup(一个作为内容展示,另一个作为侧滑内容)代码如下:<?xml version="1.0" encoding="utf-8"?><com.leixiansheng.swipemenulayo...
2019-06-27 17:48:42
1001
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人