自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 Kotlin协程

首先协程是轻量级的线程1.创建方式(1)GlobalScope.launchGlobalScope.launch(Dispatchers.Main) { println("")}这函数创建了一个协程的作用域,Lambda表达式就在协程中运行了,这个函数创建的是一个顶层协程,这种协程当程序运行结束也结束,你会发现执行后日志不会打印,因为还没有来得及执行代码块中的代码执行,程序就结束了。2.delay这个时候加一个延时就行了,delay函数是一个非阻塞的挂起函数,delay函数会挂起当前

2021-11-20 16:42:04 2178

原创 Android圆角和阴影

1.圆角其实圆角有两种(1)背景这种一般是通过shape来实现<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#80FFFFFF" /> <size andr

2022-05-18 11:57:52 1802

原创 自定义View遇到的问题-——drawText局中详解

1.这就是最常用的绘制文字public void drawText(@NonNull String text, float x, float y, @NonNull Paint paint) { super.drawText(text, x, y, paint); }1.第一个参数就是你要绘制的文字2.绘制开始的X坐标(这也是我为什么发这篇文章的理由,所以要多尝试,理解其中是如何设计的) private var buttonBgPaint = Paint() button

2022-03-27 16:42:32 329

原创 最强大的布局——约束布局(ConstraintLayout)的一些技巧

一.使用viewBinding1.想开启那个模块的viewBinding就进入对应模块的build.gradle2.进入app的build.gradle开启viewbindingviewBinding { enabled = true }3.当你开启viewbinding后,app目录下的所有布局文件都会生成一个绑定类。这个类的类名是以xml布局文件名去掉下换线后,单词首字母大写加上Binding命名的。如activity_main.xml生成的绑定类为Activit

2022-03-05 13:41:29 6395

原创 视图动画的常用用法

动画的种类Android动画大体可以分为以下3种:逐帧动画(Drawable Animation)视图动画(View Animation)属性动画(Property Animation)一般来说,属性动画是首选的使用方法,因为它更灵活,并提供更多功能。视图动画和逐帧动画仿佛将退出历史的舞台,但有时使用起来也挺方便的。下面来看一下视图动画的四种动画1.平移(translate)<?xml version="1.0" encoding="utf-8"?><set xmlns:

2022-02-26 17:15:06 910

原创 谷歌浏览器保存的密码突然去旅游了,怎么找回来呢?

1.按顺序点击2.点自动填充后点击密码或者直接在搜索栏搜索密码3.然后你会发现你的密码不见了4.解决方案进入设置,点击关于Chrome,再检查更新,然后浏览器重启就可以了

2022-02-25 15:30:58 8238 4

原创 MacBook 编辑 .bash_profile 文件

1.推荐大家用这个iTerm2终端,自带的那个终端太老了。2.如果没有.bash_profile文件,要创建这个文件1.进入当前用户的home目录终端输入:cd ~ 或 cd /Users/YourMacUserName 2.终端输入:touch .bash_profile有的话,如果.bash_profile文件不为锁定状态1.终端输入 :open -e .bash_profile (可编辑)open .bash_profile(只查看)2.编辑后关闭即可保存修改3.更新刚配置

2022-01-24 14:36:45 7130 1

原创 android通过mqtt协议连接OneNET云平台设备并传输数据

1.build.gradle(app)添加依赖implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'2.AndroidManifest.xml<uses-permission android:name="android.permission.INTERNET" /&

2022-01-22 14:15:59 6625 2

原创 android与OneNET云平台的获取数据与发送数据

这篇文章对于大学学生来说应该是一个福利,因为可能跟你的毕业设计相关联。1.GET 获取云平台的数据private static final String DeviceID = "715410157"; private static final String ApiKey = "=0nEsfHhq5sfImFv4oQYGHv=wDg="; private static final String humistream = "humistream";//onenet平台上对应设备的其中一个数据

2022-01-22 13:28:34 15132 6

原创 RecyclerView添加footerview

class FooterViewAdapter :RecyclerView.Adapter<RecyclerView.ViewHolder>() { companion object { const val TYPE_FOOTER: Int = 1 const val TYPE_NORMAL: Int = 0 } var isFooterView: Boolean = false fun setFooterView() {

2022-01-15 19:02:39 1738

原创 Mac Android Studio Git出现port 80:Operation timed out

出现这种情况是你没有访问这个项目里相关如github或gitlab的资源权限,这就需要你自己去处理了,如果是公司的项目,就找相关负责人申请权限。

2022-01-15 13:49:24 2059

原创 小米手机开启开发者模式以及INSTALL_FAILED_USER_RESTRICTED报错处理

打开【设置】2.点击【我的设备】3.下滑选择【全部参数】4.下滑找到【MIUI版本】,并且连续点击5下,此页面也会用Toast提示:【现在只需要在执行?步操作即可进入开发者模式】5.当提示你已经是开发者模式后,在返回【设置】菜单,下滑点击【更多设置】6.下滑点击【开发者选项】(如果没有开启开发者模式,这里是不会显示的)7.点击开启开发者选项按钮8.调试和安装都要选中,而且你如果要【USB安装】还必须要插入SIM卡如果你不选中【USB安装】,Android Studio会出.

2022-01-02 17:46:18 3549

原创 Mac Android studio 解决Out of memory:Java heap space

原因:根据异常说明OOM:java heap space可知,就是打包时 java的堆溢出了;所以解决方法是,将堆的最大值调大一些,就不容易溢出了。解决方法一:在android studio的项目里修改gradle文件夹下的gradle.properties文件,增加如下配置org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=4g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8然后重启andr..

2021-12-30 21:52:52 4637

原创 Mac Android Studio Git查看提交代码中文乱码解决方案

(1)下面是乱码的情况,如果不是这种情况就不必继续看了,继续你的寻找解决方案之路吧。(2)点击Android Studio的Preferences(3)勾选Use custom font,在点击Apply就可以了!(4)感悟:就这么简单,但我为了解决这个问题找了很多资料,很多时间。在这个互联网时代,人人都会百度,谷歌,各种技术博客,但我认为这是一门学问,之前有一个大佬的一句话分享给大家“当你组织好语言,理清楚逻辑关系,问出一个“高质量问题”,你其实已经解决了90%”。所以当你搜索问题时是否注意自己

2021-12-22 22:15:28 1820 2

原创 shape绘制形状基础详细解析

android 的样式主要则是通过 shape、selector、layer-list、level-list、style、theme、layer、bitmap 等组合实现这篇文章主要介绍最基础的形状定义工具shape1.Android develelopers官方解释Defines a generic graphical “shape.”Any Shape can be drawn to a Canvas with its own draw() method, but more graphical.

2021-12-18 15:08:23 3721 1

原创 浅谈屏幕适配 dp dip sp dpi ppi px sp

一、Drawable资源文件夹之间的关系Android开发中,UI一般会制作多种图片素材,根据素材的分辨率大小,放在如下几个文件夹中:Android 工程里 res 目录下的 drawable-hdpi, drawable-xhdpi, drawable-xxhdpi 等文件夹。我们知道 Android 会根据屏幕的 dpi 去选择对应的 drawable 文件夹,Android项目的资源文件下存在以下目录:drawable-ldpi ( 当dpi为120时,使用此目录下的资源),如QVGA (240

2021-12-11 17:04:55 3192

原创 ImageView.ScaleType属性分析

ImageView的Scaletype决定了图片在View上显示时的样子,包括是否进行缩放、等比缩放、缩放后展示位置及显示图片的整体还是部分等。Android 提供了八种scaleType的属性值。分为三个类型:(1) 以FIT_开头的4种,它们的共同点是都会对图片进行缩放;(2) 以CENTER_开头的3种,它们的共同点是居中显示,图片的中心点会与ImageView的中心点重叠;(3) ScaleType.MATRIXandroid:scaleType=“center”(1)当图片大于Im

2021-12-04 22:46:05 2728

原创 TextView带你深入了解你可能不知道的用法

1.在textview的周围添加图片android:drawableBottom:在text的下方输出一个drawable,可以是图片,样式,颜色等。其他举一反三android:drawableLeftandroid:drawableRightandroid:drawableTopandroid:drawableStartandroid:drawableEndandroid:drawablePadding:设置text与drawable的间距,是与drawableLeft、 drawableR

2021-12-04 22:29:59 1046

原创 ConstraintLayout带你深入了解约束布局的使用

1.关于约束布局居中如何实现(1)app:layout_constraintStart_toStartOf=“parent”app:layout_constraintEnd_toEndOf=“parent”(2)app:layout_constraintLeft_toLeftOf=“parent”app:layout_constraintRight_toRightOf=“parent”一般通过Start和End(left和right)指定同一个控件就可以实现居中,相信聪明的你举一反三也知道通.

2021-12-04 21:26:07 2901

原创 BaseQuickAdapter和RecycleView基础使用

一.添加依赖maven { url ‘https://jitpack.io’ }implementation ‘com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.1’二.适配器class BaseAdapter( layoutId: Int,//可以传入item的布局 data: MutableList<InfoBean>? = null//数据) : BaseQuickAdapter<Bean, Bas

2021-11-28 17:39:22 2947

原创 RecycleView实现首页复杂布局效果(横向和竖向)

1.设计思想其实当你看到一个布局或界面时,你首先要想怎么实现,用什么控件,当时我第一个想到的就是listview,但listview没有办法实现横向滑动,所以决定用RecycleView,最开始想的是用2个RecycleView(一个横向和一个竖向)。其实这里有一个问题,当滑动竖向RecycleView时,横向RecycleView是不会动的,这从用户的角度来看体验肯定不好(开发者可以以用户的角度去开发,这样产品会有更多的用户体验)最后变成了下面的设计,外面有一个顶层竖向RecycleView,横向R

2021-11-20 15:15:56 1764

原创 LayoutInflater深度解析,学习方式分享

LayoutInflater.from(parent.context).inflate(R.layout.activity_main,parent,false)通过CTRL+用鼠标点击from方法我们进入了from源码(windows快捷键,Mac为Command+c)public static LayoutInflater from(Context context) {LayoutInflater LayoutInflater =(LayoutInflater) context.getSystem

2021-11-20 13:41:51 1892

原创 Project目录,xml,Kotlin语法糖

首先推荐郭霖的《第一行代码》第三版(这是Kotlin版,关于Kotlin,当看到这篇文章,那请不要犹豫到底学不学Kotlin,因为工作后你自己会主动学),如果你跟我一样需要抓基础,那这是一个不错的选择,通过看书,我把自己之前学习Android疑惑的东西都写了出来,按照学习的顺序。一.Project目录分析首先我们在工作时要切换为项目的真实目录结构(就是将Android下拉为Project)首先对于疑惑的目录进行讲解.gitignore 这个文件用来将指定的目录或文件排除在版本扩展之外。bui

2021-11-14 19:11:18 2749

原创 android 学习中关于XML的一些难以理解的知识点

一.findViewByid先说一下大家经常要用的findViewByid,一般把一堆findViewByid放到init()方法里,但推荐大家使用绑定工具。现在可以用比如ViewBindingDataBinding等视图绑定的工具,下面是各种方法的对比二.设置按键监听一般实现方式有以下几种1.实现View.OnClickListener适合多个按键,可以通过过switch语句区分不同按键,使代码不冗余2.button.setOnClickListener可使用内部类(.

2021-10-27 12:11:47 1523

Jetpack 全家桶.pdf

Jetpack入门

2021-12-12

空空如也

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

TA关注的人

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