
Android(Kotlin)
用Android Studio开发Kotlin
心脏dance
求关注!!!求关注!!!安卓、后端学习记录,面试算法题(博主ACM区域赛银牌~~~水银嘻嘻~~~,蓝桥杯国一~~~),面试技术题。如果觉得博主写的好,菜鸡博主求关注~~~。 /*
呜呜呜~~大学的时候,写的博文中有些是借鉴的,若有侵权,请告知,立马删除。。。。 */
展开
-
解决“¥”符号在安卓上显示只有一个横杠的问题
每个普通字符(或半角字符)只占用一字节的空间(一字节有8位,共256个编码空间),而汉语、日语、及朝鲜文等文字语言的字库量远大于256个,所以改用两个字节来储存。同时,也是因为中日韩等文字的书写习惯,如果统一使用全角字符的话,排列起来也显得整齐。出现显示只有一个横杠是因为使用了全角的“¥” ,在安卓上会出现兼容的问题,使用半角的就没问题了。可以选中看下区别,全角的明显会宽(一个汉字的宽度),半角(半个汉字的宽度)。全角占两个字节,半角占一个字节。原创 2022-11-01 19:38:11 · 2225 阅读 · 0 评论 -
Error: INSTALL_FAILED_TEST_ONLY
原因:Android Studio 3.0之后,在打包生成debug apk时,在apk的manifest文件的application标签里自动添加 android:testOnly="true"属性。android:testOnly=“true” 这个标记原本是用来标记测试用的,所以带这个标记的包一般情况下是不能安装上的,需要使用特殊的方式安装(添加-t标志)。方法一:在项目中的全局配置gradle.properties文件中设置:android.injected.testOnly=false。原创 2022-09-14 21:11:29 · 1370 阅读 · 0 评论 -
给textView设置文字渐变色
一定要先设置shader,在设置字。如果先设置的字或者在xml里面设置的字,就需要设置完shader之后调用一下触发重新绘制的代码。4.最后一个参数为渐变的效果,我这里选择的就是从开始的颜色渐变到结束的颜色,这里不再赘述,感兴趣的可以去搜下各种渐变的效果。viewBinding.title这是一个textView。3.第5个参数为开始的颜色,第6个参数为结束的颜色。2.前4个参数为描述位置,我这里描述的是从上到下。从上到下x=x1y改变。从左到右x改变y=y1。......原创 2022-07-29 19:50:53 · 1550 阅读 · 0 评论 -
recycleView自定义ItemDecoration解决列表第一个item和最后一个item的间距难统一问题
经常碰到一些场景,每个列表的第一个和最后一个可能间距不一样(意思就是说每个item统一设置一样的间距的话,会不符合自己的预期),此时我们有一个很好的做法就是自定义 ItemDecoration原创 2022-06-24 19:02:24 · 1736 阅读 · 2 评论 -
安卓利用动画设置背景颜色
利用插值器和 ArgbEvaluator() 来做的插值器用来做动画,ArgbEvaluator() 用来做颜色渐变上代码:private var valueAnimator: ValueAnimator? = nullprivate val evaluator by lazy { ArgbEvaluator()}/** * 背景色渐变动画 */private fun startValueAnimator(view: View) { valueAnimator =原创 2022-05-21 15:06:28 · 485 阅读 · 1 评论 -
安卓冷启动的时候进行调试的解决方案
有时候我们调试,需要在电脑冷启动的时候进行调试,或者说刚冷启动就要断点。此时就需要先把进程挂起再进行调试。挂起后,我们正常进行调试即可,此时就可以做到,调试开始,才能进入App的情况了。使用方式:在Terminal中运行下面一行即可/adb shell am set-debug-app -w {package_name}package_name(看下方的红框):...原创 2022-02-21 19:46:59 · 1415 阅读 · 0 评论 -
安卓气泡弹窗
先画好自己的气泡布局 pop_window_view.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:backgroun原创 2022-02-14 11:19:38 · 2837 阅读 · 0 评论 -
安卓设置背景某个方向有圆角,某个边有border
width是border的宽度,取消掉就 -width 就可以了,我这里直接写的-1dp也是可以的哦~~~<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:left="-1dp"> <shape> <c.原创 2022-01-05 18:08:19 · 1661 阅读 · 0 评论 -
安卓背景用shape设置渐变色
startColor:开始的颜色endColor:结束的颜色angle:旋转多少度,设置颜色从哪儿个方向开始渐变<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="270" android:startColor="#原创 2022-01-05 15:33:54 · 1941 阅读 · 0 评论 -
View Binding 解决kotlin直接用VIew的id导致的IllegalStateException
之前用java获取view是通过 findViewById() 来获取view的,需要写好多这样的代码,很繁琐,后来kotlin的话,是可以直接通过view的id来进行各种操作,但是经常会java.lang.IllegalStateException: ****** must not be null在这里告诉大家一种既简单又可以摆脱exception的方法!!!谷歌官网:https://developer.android.com/topic/libraries/view-bind...原创 2022-01-04 15:54:16 · 1862 阅读 · 0 评论 -
给LinearLayout的addView()、removeView()添加动画
给LinearLayout的addView()、removeView()添加动画原创 2021-12-23 10:25:19 · 2955 阅读 · 1 评论 -
Only fullscreen activities can request orientation
如果你没经历过这个bug,这个bug真的很坑的。首先这个bug只有安卓8才会有问题,注意:只有8.0.我造成错误的原因是写了这样一行代码:// 禁用横屏requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT解决方法:1. 这个方法,可能会造成安卓8,使用你的页面的时候出现横屏。if (Build.VERSION.SDK_INT != Build.VERSION_CODES.O) { requeste原创 2021-12-17 18:13:51 · 971 阅读 · 0 评论 -
安卓使用RecyclerView的notifyItemInserted()的坑
大多数人经常会碰到:java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{**** position=13 id=-1, oldPos=1 ******我是在这样的场景下出现的这个问题:scrollToPosition(0) // 快速定位到列表顶部notifyItemInserted(0) // 插入一条数据为什么会原创 2021-12-12 15:33:32 · 5482 阅读 · 0 评论 -
安卓插值器(ValueAnimator)
安卓插值器的介绍与使用,以及插值器与动画的区别。原创 2021-11-16 22:31:00 · 1365 阅读 · 0 评论 -
URN、URL、URI的区别
三者关系:URI(Uniform Resource Identifier ):统一资源标识符,就是在某一规则下能把一个资源独一无二地标识出来。 URL(Uniform Resource Locator):统一资源定位符。 URN(Uniform Resource Name):统一资源名称。注意:URL是URI的一种表现形式,别的能定位到资源的方法也叫URI~~~...原创 2021-11-03 17:54:54 · 248 阅读 · 1 评论 -
什么是埋点?
对于很多新人来讲,心里三个大问号,埋点?埋点?埋点?你可能会问:什么是埋点?长话短说,这里直接说什么是埋点:以安卓为例~~:1:比如说界面上有2个button,我们想知道用户点击哪儿个button点击的比较多,这个时候就需要埋点了,我们可以在用户点击button的时候上报一个信息(信息:用户点击了button的相关信息),这样后端就可以落库,谁谁点击了哪儿个button。最后DA(Data analysis)就可以通过sql来统计哪儿个button点击的比较多了。2:我们想知道用户使用app的时原创 2021-10-26 16:06:16 · 278 阅读 · 0 评论 -
安卓7大基本布局
一:基础知识1.Android七大基本布局分别是:LinearLayout(线性布局)、TableLayout(表格布局)、RelativeLayout(相对布局)、FrameLayout(层布局)、AbsoluteLayout(绝对布局)、GridLayout(网格布局)、ConstraintLayout(约束布局)。2.七大基本布局的继承关系上面这个类图只是说了六大基本布局的关系,当然ViewGroup还有其他一些布局管理器。3.Android布局的XML关系图:二:..原创 2021-10-04 13:55:48 · 5799 阅读 · 3 评论 -
button 设置圆角
直接上代码:先写一个shape,放到drawable文件件下面<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="22dp"/> <solid android:color="原创 2021-09-18 14:49:08 · 1691 阅读 · 0 评论 -
MAC 配置 adb(作用范围:电脑全局)
配置之前看自己的电脑是.bash_profile 还是.zshrc 后面根据自己的电脑选择来配置,下面的2、3、5步骤这两种是一样的,只有1、4是不一样的,已经在里面说明~~~怎样看:因为我是基于android studio的所以用它看的。zsh:代表需要配置 .zshrc 文件详细步骤:1.打开终端,然后输入vi .bash_profile 或者 vi .zshrc2.在里面加上(platform-tools的路径)#adbexport PATH="/***...原创 2021-09-17 13:59:50 · 803 阅读 · 0 评论 -
Android studio 显示中文方块乱码问题
Android studio升级后显示中文方块乱码:版本:解决方案:选上即可~~~记得apply哦~~~原创 2021-09-16 18:41:26 · 455 阅读 · 0 评论 -
Android 监听网络波动,并弹出toast等操作
1.实现 ConnectivityManager.NetworkCallback() 的接口,并重写你需要的方法~~我重写的是当网络断开的时候的方法@RequiresApi(Build.VERSION_CODES.LOLLIPOP)class NetWorkCallback(var mContext: Context, var resources: Resources) : ConnectivityManager.NetworkCallback() { override fun o原创 2021-09-08 17:55:53 · 457 阅读 · 0 评论 -
MAC 下 Android Studio 配置 adb(作用范围:配置的项目中)
1、打开Android Studio 的 Terminal;2、进入当前用户home目录echo $HOME3、创建.bash_profile文件touch .bash_profile4、打开.bash_profile文件open -e .bash_profile5、在打开的.bash_profile文件中编辑如下,编辑完保存退出即可,“我用的command+s”export PATH="sdk的路径/platform-tools:$PATH"举例:expo原创 2021-09-07 17:15:59 · 1042 阅读 · 0 评论 -
安卓事件分发机制
触摸控件后,就一定会调用该控件的dispatchTouchEvent方法,如果是button,会发现Button类里并没有这个方法,那么就到它的父类TextView里去找,发现TextView里也没有这个方法,继续在TextView的父类View里找,在View里找到了这个方法。 ...原创 2021-08-29 18:19:07 · 274 阅读 · 0 评论 -
安卓版本、API级别、VERSION_CODE对照表
谷歌官网的一个表:https://developer.android.com/guide/topics/manifest/uses-sdk-element平台版本 API 级别 VERSION_CODE 备注 Android 10.0 29 Q 平台亮点 Android 9 28 P 平台亮点 Android 8.1 27 O_MR1 平台亮点 Android 8.0 26 O 平台亮点 An.原创 2021-08-27 16:40:57 · 3253 阅读 · 0 评论 -
kotlin中is、!is、as、as?的使用方式
1.is运算符相当于java中的instanceof,用来判断当前类型是不是对应的类型(可以是对应的类型的子类),说的很抽象,上代码看一下。fun main() { val str = "helloWorld" println(str is String)}输出:true2.!is是is的否定形式(就是效果跟is相反),上代码看一下fun main() { val x = 10 println(x !is Int)}输出:false3.as是相原创 2021-08-25 16:52:23 · 5181 阅读 · 0 评论 -
安卓锁定竖屏
首先是想到,锁定肯定是锁定对应的activity即可。2种方式:1.逻辑代码里加一句话 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // 禁用横屏 requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT }2.清单文件里面加一句话(and原创 2021-08-25 10:44:49 · 841 阅读 · 0 评论 -
AnimatorSet的用法(多动画同时播放)
首先是要操作的布局:// 下面是伪码<xxxx android:id="@+id/my_view" android:layout_width="xxdp" android:layout_height="xxdp" />然后搞一个对象:var animationSet = AnimatorSet()最后是具体用法,解释写在代码里面: private fun myAnimationSet() { // findById等方法.原创 2021-08-12 20:49:12 · 1106 阅读 · 0 评论 -
Lottie的使用
首先是设置lottie的播放位置:<com.airbnb.lottie.LottieAnimationView android:id="@+id/my_lottie" android:layout_width="12dp" android:layout_height="12dp" android:layout_centerInParent="true" android:visibility="invisible" />然后就可以播放lottie了原创 2021-08-11 15:04:19 · 479 阅读 · 0 评论 -
安卓点击按钮实现缩放效果,点击完成恢复原状~~
直接上代码,里面有注释,不懂的可以评论提问题哦~~~~import android.annotation.SuppressLintimport android.view.MotionEventimport android.view.View/** * 添加点击缩放效果 */// 消除警告@SuppressLint("ClickableViewAccessibility")// 参数为:缩小比例、缩小的变化时间fun View.addClickScale(scale: Float .原创 2021-08-03 16:36:25 · 2275 阅读 · 1 评论 -
recycleview知识点
一个RecyclerView的Item加载是有顺序的,具体可以对adapter的每个方法进行重写打下日志进行查看,具体大致为:getItemViewType(获取显示类型,返回值可在onCreateViewHolder中拿到,以决定加载哪一个ViewHolder)onCreateViewHolder(加载ViewHolder的布局)onViewAttachedToWindow(当Item进入这个页面的时候调用)onBindViewHolder(将数据绑定到布局上,以及一些逻辑的控制就写这啦)原创 2021-07-13 18:13:51 · 1344 阅读 · 0 评论 -
Android音视频相关知识
音视频知识多媒体:文字、图片、音频、视频滤镜:像素值改动变速:帧率的改动像素:像素指由图像的小方格组成的,这些小方块都有一个明确的位置和被分配的色彩数值(RGB),小方格颜色和位置就决定该图像所呈现出来的样子。码率(比特率):大小/时间分辨率:360p、540p、720p、1080p、4k同分辨率多码率:normal、low、high、lowest质量:压缩后的清晰度 PSNR、SSIM、VMAFIBP帧(视频编码技术):I帧:独自编码,不依赖其他帧,通常是场景变换(镜头原创 2021-07-08 18:47:18 · 163 阅读 · 1 评论 -
Kotlin的“==”、“===”、“equals()”比较
在Kotlin中:“==”和“equals()”一样比较的是数值(现在好的编译器(比如idea)写equals(),会提示改成==了)“===”比较的是地址原创 2021-05-10 14:20:49 · 432 阅读 · 3 评论 -
安卓底部导航栏不显示文字问题(Kotlin)
方法一:kt文件中修改(拿到组件修改属性):val bottomNav = findViewById<BottomNavigationView>(R.id.bottom_nav)//设置底部menu文字全部显示bottomNav.labelVisibilityMode = LABEL_VISIBILITY_LABELED解释,看源码:方法二:在xml中修改(加上这个属性,跟方法一原理一样):解释,看源码:...原创 2021-04-23 16:23:35 · 1285 阅读 · 6 评论 -
Kotlin实现Android顶部导航栏与模块联动
下面代码的实现效果就是下面那个截图,无任何其他功能,很单纯,就是Kotilin实现Android顶部导航栏与模块联动~~~项目目录:实现效果:MainActivity:package com.lgz.kotlinstudy.activityimport android.os.Bundleimport androidx.appcompat.app.AppCompatActivityimport androidx.fragment.app.Fragmentimport an.原创 2021-04-22 17:03:47 · 1444 阅读 · 7 评论 -
Unable to access Android SDK add-on list解决方案
原因:AS启动之后,会检查默认路径下的Android SDK是否存在,如果没有的话,就会报上述错误解决方案:点击Cancel即可,后面会有一个安装的界面。安装即可,可能下载速度会很慢哦~~等着就好了。...原创 2021-04-21 15:07:42 · 313 阅读 · 0 评论 -
官网下载Android Studio下载不了
官网地址:https://developer.android.google.cn/studio/点击下载后显示:解决办法:右上角中文-简体改成ENGLISH 即可在次点击下载就可以下载了!!!神一样的操作原创 2021-04-21 14:34:47 · 17585 阅读 · 36 评论 -
人生第一个Android软件,给自己加油!!
后续继续更新~~~原创 2019-05-03 23:05:04 · 262 阅读 · 0 评论