自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(383)
  • 资源 (16)
  • 收藏
  • 关注

原创 resource android:attr/lStar not found.和unknown tag <:string>问题

检查androidx.core:core-ktx包的版本是否指定,没有指定版本需要指定版本号。原因与字符串数组有关。在你的string.xml检查你是否有空 或类似的东西。

2023-09-26 16:33:56 449

原创 window透明主题取消进场动画

透明主题,进场动画,由下往上动画

2023-09-22 14:42:29 152

原创 android可见即可说实现方案

无障碍服务,科大讯飞, 热词注册,WindowManager,点击穿透效果,反射,AccessibilityNodeInfo.AccessibilityAction.ACTION_SET_PROGRESS

2023-09-18 17:53:14 1631 1

原创 Compose基础示例(列表,状态,Image,Text Field, 定时器)

【代码】Compose基础示例(列表,状态,Image,Text Field, 定时器)

2023-09-14 17:33:49 176

原创 Compose中的定时器

【代码】Compose中的定时器。

2023-09-14 17:16:48 257

原创 string-array嵌套获取值为null的问题

【代码】string-array嵌套获取值为null的问题。

2023-08-03 16:43:24 122

原创 Android开发中

文章目录idmap开发者模式正常主题monkey自测查看广播队列日志不显示shared_prefssetting存储本地数据库查询keyevent 输入logcat命令复制多个文件(文件夹下所有文件)到指定路径launcher冷启动IO 监听查看内存系统属性SystemProperties反射调用idmapadb shell idmap --inspect /data/resource-cache/vendor@overlay@.apk@vendor@priv-app@account.apk@idmap

2022-02-19 19:47:58 1566

原创 Paint绘制圆角矩形

import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Path;import android.graphics.RectF;import android.graphics.drawable.ColorDrawable;import android.util.AttributeSet;public class Ro.

2021-10-25 18:19:35 1920

原创 应用启动获取屏幕可绘制区域异常问题

平板开发屏幕尺寸获取异常导致应用启动页面失真问题在activity的onCreate方法中,setContentView之前监听ViewTreeObserver.OnGlobalLayoutListener的接口动态修改自己应用离屏幕边界的距离一般来说,在onCreate时我们是无法拿到View的高度和宽度的,当全局布局状态或视图树中视图的可见性发生更改时,可以听过监听这个接口来获取高度和宽度public class MyActivity implements ViewTreeObserver.O

2021-08-27 17:36:06 331

原创 JNI中Native方法的注册方式

文章目录JNI中native方法注册native方法静态注册native方法动态注册数据类型转换方法签名:使用javap自动生成方法签名JNIEnvJNI中native方法注册jni是Java Native Interface的缩写,Java本地接口,是Java与其他语言(native语言)通信的桥梁Native方法注册分为静态注册(多用于NDK开发)和动态注册(多用于framework开发)native方法静态注册AndroidStudio中新建一个lib包,本例仿照MediaRecord

2021-07-16 17:32:15 1135 6

原创 ServerSocket和Socket连接

文章目录概述:Socket和浏览器通信连接和通信Socket保持连接通信概述:ServerSocket类 TCP协议,服务器端,通过serveSocket.accept();方法获取socket实例Socket类 TCP协议 通过new Socket()获取实例,创建Socket对象的时候则需要声明一个IP地址和ServerSocket对象的端口号,这样才能对服务端发出连接请求客户端上的使用1.getInputStream方法可以得到一个输入流,客户端的Socket对象上的getInputS

2021-07-13 15:44:35 1684

原创 AndroidStudio编写测试类运行报错:Could not create task :app Test.main()

* Where:Initialization script 'C:\Users\Administrator\AppData\Local\Temp\TestTest_main__.gradle' line: 21 * What went wrong:A problem occurred configuring project ':app'.> Could not create task ':app:TestTest.main()'. > SourceSet with name 'm

2021-07-13 13:20:35 2946

原创 剔除重复依赖

标题类似 More than one file was found with OS independent path ‘META-INF’app的build.gradle中添加剔除android{ packagingOptions { exclude 'META-INF/**' exclude 'lib/arm64-v8a/libmediaplayer.so' }}

2021-04-23 17:25:39 2970

原创 使用AndroidViewModel初始化报错

Caused by: java.lang.RuntimeException: Cannot create an instance of class com.aiways.dmsgallery.vm原因是无法创建带参数的构造方法,原因是 ViewModelProvider默认创建无参的构造方法,如果有参数的构造方法将无法正常创建。而 AndroidViewModel 需要使用带 application参数的构造方法创建,解决办法是使用AndroidViewModelFactory创建AndroidVi.

2021-04-22 16:51:24 4915

原创 APK反编译的方法(未混淆)

文章目录需要的工具反编译方法过程需要的工具下载地址:链接:https://pan.baidu.com/s/1kEvmRyTQUp7ujnvsfELJZA 提取码:sb8m 复制这段内容后打开百度网盘手机App,操作更方便哦apktool 资源文件获取, 可以提取出图片文件和布局文件进行使用查看dex2jar 将apk反编译成java源码,将classes.dex转化成 .jar文件jd-gui 查看APK中classes.dex转化成出的 .jar文件,即源码文件反编译方法过程

2021-04-13 14:47:35 4714

原创 Binder机制和AIDL通信示例

文章目录介绍Binder工作流程AIDL通信实例介绍 Binder由四部分组成:Binder客户端、Binder服务端、Binder驱动、服务登记查询模块。Binder客户端是想要使用服务的进程。Binder服务端是实际提供服务的进程。Binder驱动:1.客户端先通过Binder拿到一个服务端进程中的一个对象的引用,2.通过这个引用,直接调用对象的方法获取结果。3.在这个引用对象执行方法时,它是先将客户端方法调用的请求传给Binder驱动;4.然后Binder驱动再将客户端请求传给服

2021-04-01 18:46:17 4709

原创 Jetpack之ViewModel和LiveData的使用

ViewModel介绍 ViewModel将页面所需的数据从页面剥离出来,页面只需要处理用户交互和展示数据。是介于View(UI)和Model(数据)之间的桥梁,使得视图和数据既能够分开,又可以保持通信。 ViewModel 独立于配置变化之外,例如activity旋转时页面会重建,生命周期也会结束后重新开始,但是这期间并不会影响ViewModel的生命周期,还是那个ViewModel...

2021-03-10 21:07:22 62

原创 Jetpack之ViewModel和LiveData的用法

文章目录ViewModel介绍ViewModel实例化ViewModel源码创建使用ViewModel与onSaveInstanceState()的区别ViewModel介绍ViewModel将页面所需的数据从页面剥离出来,页面只需要处理用户交互和展示数据。是介于View(UI)和Model(数据)之间的桥梁,使得视图和数据既能够分开,又可以保持通信。ViewModel 独立于配置变化之外,例如activity旋转时页面会重建,生命周期也会结束后重新开始,但是这期间并不会影响ViewModel的生命

2021-03-10 21:04:24 7937

原创 Jetpack之Navigation和NavigationUI

依赖 implementation 'androidx.navigation:navigation-fragment-ktx:2.3.1' implementation 'androidx.navigation:navigation-ui-ktx:2.3.1'navigation的主要元素Navigation Graph 一种xml资源文件,包含应用所有的页面...

2021-03-09 20:25:22 56

原创 Navigation和NavigationUI的使用

文章目录navigation的主要元素navigation的主要元素Navigation Graph 一种xml资源文件,包含应用所有的页面以及页面之间的关系,也就是fragment的放置的地方,NavHostFragement 一种特殊的fragment, 可以理解为fragment的容器,是fragment展示UI的地方,Navigation Graph中的fragment通过NavHostFragement展示...

2021-03-09 20:21:31 10098

原创 使用lifecycle解耦页面与组件

文章目录Lifecycle原理介绍Lifecycle对Activity生命周期监听Lifecycle对Service生命周期监听ProcessLifecycleOwner监听APP的前后台Lifecycle原理介绍Jetpack为我们提供了两个类,LifecyleOwner(被观察者)和LifecyleObserver(观察者),通过观察者模式实现对页面生命周期的监听。Lifecycle对Activity生命周期监听绑定activity的生命周期class LifeCycleListene

2021-03-05 20:29:59 7889

原创 Apk瘦身压缩体验

文章目录资源统一资源统一尽量一个项目使用同一套资源,对于绝大对数APP来说,只需要取一套设计图就足够了。鉴于现在分辨率的趋势,建议取720p的资源,放到xhdpi目录。相对于多套资源,只使用720P的一套资源,在视觉上差别不大,很多大公司的产品也是如此,但却能显著的减少资源占用大小,顺便也能减轻设计师的出图工作量了。不是xhdpi的目录都删除,而是强调保留一套设计资源就够了。资源图片引入前先进行压缩,不使用原图,...

2021-02-03 21:03:14 7927 2

原创 关于加密和编码的说明

@[TOC]古典密码学 起源于古代战争:在战争中,为了防⽌书信被截获后重要信息泄露,⼈们开始对书 信进⾏加密。 移位式加密 如密码棒,使⽤布条缠绕在⽊棒上的⽅式来对书信进⾏加密 加密算法:缠绕后书写 密钥:⽊棒的尺⼨ 替换式加密 按规则使⽤不同的⽂字来替换掉原先的⽂字来进⾏加密。 现代密码学可以加密任何⼆进制数据⾮对...

2021-01-29 21:40:00 40

原创 加密和编码解析

文章目录古典密码学移位式加密替换式加密现代密码学对称加密⾮对称加密签名与认证:hash算法编码和解码Base64编码URL 使⽤的百分号编码压缩与解压缩编码序列化古典密码学起源于古代战争:在战争中,为了防⽌书信被截获后重要信息泄露,⼈们开始对书信进⾏加密。移位式加密如密码棒,使⽤布条缠绕在⽊棒上的⽅式来对书信进⾏加密加密算法:缠绕后书写 密钥:⽊棒的尺⼨替换式加密按规则使⽤不同的⽂字来替换掉原先的⽂字来进⾏加密。现代密码学可以加密任何⼆进制数据⾮对称加密的出现使得密码学

2021-01-29 21:38:50 7217

原创 MultiTypeAdapter在recycleView中的使用和点击事件处理

概述 RecycleView中多种数据结构的item进行解耦,单一职责显示多种类型的item布局 MultiTypeAdapter会给items中每一种类型的itemData找到对应的itemViewBinder进行数据绑定 基于版本 implementation 'com.drakeet.multitype:multitype:4.2.0' itemViewBinder...

2021-01-28 21:19:09 63

原创 MultiTypeAdapter在recycleView中的使用和点击

文章目录概述一个itemViewBinder多种item数据类型多类型item数据注册显示效果图概述RecycleView中多种数据结构的item进行解耦,单一职责显示多种类型的item布局MultiTypeAdapter会给items中每一种类型的itemData找到对应的itemViewBinder进行数据绑定一个itemViewBinder/*** Author: yangtianfu* Date: 2021/1/28 20:13* Describe:每一种itemViewBind

2021-01-28 21:15:46 8020 1

原创 自定义TextView之drawableLeft与文本一起居中显示

```import android.annotation.SuppressLintimport android.content.Contextimport android.graphics.Canvasimport android.util.AttributeSetimport android.widget.TextView/*** Author: yangtianfu* Da...

2021-01-25 18:34:28 61

原创 kotlin中自定义TextView之drawableLeft与文本一起居中显示

import android.annotation.SuppressLintimport android.content.Contextimport android.graphics.Canvasimport android.util.AttributeSetimport android.widget.TextView/*** Author: yangtianfu* Date: 2021/1/25 18:08* Describe:drawableLeft与文本一起居中显示*/@Su.

2021-01-25 18:32:51 7499

原创 RecycleView实现横向带指示器翻页滑动,一行两列自定义布局

* * 1AutoGridLayoutManager * 2PageIndicatorView * 3PageRecyclerView * 4使用 首先看需求效果\ \ 在acvitity中有一个控件,需要实现这种分页效果,还要指示器,并且每页的两列不能太分散,使用GridView就很不好实现,这里用RecycleView展示,先看成型后需要用到的结构(需要用到哪些自定...

2021-01-21 16:07:51 353

原创 Android开发自定义view统一验证码输入框

文章目录布局文件自定义view输入监听布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout

2020-12-23 10:45:45 6347

原创 使用CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout打造折叠状态栏

文章目录布局监听CoordinatorLayout 属性AppbarLayoutCollapsingToolbarLayout效果图布局<?xml version="1.0" encoding="utf-8"?><layout xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" tools:ignore="ResourceN

2020-11-26 16:25:16 6807

原创 ScrollView高度不能充满全屏

android:fillViewport 属性解决ScrollView高度不能充满全屏的问题 <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" android:scrollbars="none" >...

2020-11-25 13:56:55 5778

原创 selector中使用state_enabled设置自定义控件可变背景drawable

<?xml version="1.0" encoding="utf-8"?><selector xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" tools:ignore="MissingDefaultResource"> <item android:state_enabled="false"

2020-11-25 13:55:16 5685

原创 Kotlin中关于DataBinding

文章目录android:visibility 可见性绑定和onClick绑定数据单向绑定的问题(数据改变更改视图)点击事件监听数据双向绑定问题调用类中的方法::Unresolved reference: BR常量值和变量组合绑定databinding中使用逻辑与运算符&&android:visibility 可见性绑定和onClick绑定 <data> <import type="android.view.View"/> <v

2020-11-13 17:34:28 5803

原创 Activity中多fragment使用NavHostFragment导航用法

文章目录创建navigation容器activity中引用fragment容器容器中在design视图下创建fragmentfragment间跳转fragment跳转动画转场动画创建navigation容器创建存放fragment的navigation容器容器nav_container,用来放fragment<?xml version="1.0" encoding="utf-8"?><navigation xmlns:android="http://schemas.andr

2020-09-18 16:27:25 17008 1

原创 kotlin中TabLayout和ViewPager2自定义tabview

文章目录xmltabview自定义item布局(tabIndicator底部指示器)动态tab数据ViewPager2适配器FragmentStateAdapterUI调用xml <com.google.android.material.tabs.TabLayout android:id="@+id/tab_layout_tips" android:layout_width="match_parent" andr

2020-09-17 16:14:36 7640

原创 自定义Switch备份

<Switch android:id="@+id/switch_bluetooth" android:layout_width="wrap_content" android:layout_height="31dp" android:switchMinWidth="51dp" app:layout_constraintRight_toRightOf="parent"...

2020-08-26 14:27:26 5603

原创 ViewPager2画廊效果

fun Int.dpToPx(displayMetrics: DisplayMetrics): Int = (this * displayMetrics.density).toInt()fun Int.pxToDp(displayMetrics: DisplayMetrics): Int = (this / displayMetrics.density).toInt()使用10.dpToPx(context.resources.displayMetrics)

2020-07-02 16:30:46 7469 1

原创 腾讯Matrix应用性能接入框架使用

文章目录Matrix Android ApkChecker创建的文件生成的文件Matrix Android ApkCheckerhttps://github.com/Tencent/matrix/wiki/Matrix-Android-ApkChecker jar包下载地址:https://jcenter.bintray.com/com/tencent/matrix/matrix-apk-canary/0.6.5/matrix-apk-canary-0.6.5.jar 创建检测报告

2020-06-30 19:29:00 8880

原创 BindingAdapter(kotlin自定义数据绑定)

ImageView@BindingAdapter("imageFromUrl")fun bindImageFromUrl(view: ImageView, imageUrl: String?) { if (!imageUrl.isNullOrEmpty()) { Glide.with(view.context) .load(imageUrl) .transition(DrawableTransitionOpti..

2020-06-01 16:58:26 8283

Google Flutter官方文档详细翻译

Google平台的Flutter官方文档的中文版,电子书的格式,从环境配置到第一个demo的完成,以及常用UI效果的展示。

2018-07-16

滑块拖动的依赖包(导入直接用)

滑块验证的自定义实现,可以随意更改样式,样色,和显示文字,自定义圆角大小

2017-08-21

二次贝尔曲线实现的购物车轨迹曲线

类似饿了么点餐页面,左右两个RecycleView相关联,点击左侧类别,右侧自动置顶,利用二次贝塞尔曲线公式绘制动画轨迹

2017-07-25

绚烂起来的ConvenientBanner的轮播效果图

实现本地图片和网络加载图片的多种轮播效果图的任意切换(3D效果,翻转效果,淡入淡出效果,等等效果)

2017-07-24

TabLayout和ViewPager的经典漂移(实现底部Tab的图文混排合联动以及切换时数据同步问题)

改moudle实现了类似微信框架的效果,只用TabLayout和ViewPager以及fragment实现,简单的方式实现底部选项卡的图文混排以及和Fragment的联动,甚至可以同步切换数据,顺带实现了艺术字类型的Alerter通知栏

2017-07-24

Android四大组件图解

安卓四大组件的概念和用法图解

2017-03-11

ContentReslover动态获取手机联系人

ContentReslover动态获取手机联系人

2017-03-08

StartService和BindService实现播放音乐的样例

StartService和BindService实现播放音乐的样例

2017-03-08

HTML学习手册

2017-03-04

安卓开发的API手册

安卓开发的API手册

2017-03-04

仿微信框架开发

仿微信框架开发

2017-02-27

RecycleView与ViewPager的嵌套开发

RecycleView与ViewPager的嵌套开发

2017-02-27

Fragment数据相互

Fragment数据相互

2017-02-27

Java基础知识点

Java基础知识点复习题

2017-02-13

Java常用类别用法和进阶代码

Java常用类别用法和进阶代码

2017-02-13

java 基础知识png

微信同号,欢迎指教

2017-01-06

空空如也

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

TA关注的人

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