自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 ScrollView嵌套Edittext滑动冲突

情景EditText 文字高度 高于 控件高度 时,正常来说是可以上下滚动EditText中的文字的。当Edittext嵌套ScrollView在里面时发现无法滚动文字。原因查看源码发现ScrollView会拦截滑动事件,致使事件无法传递到EditText。public boolean onInterceptTouchEvent(MotionEvent ev) { final int action = ev.getAction(); if ((a

2021-02-03 00:27:51 170

原创 Android事件分发机制小结

基本知识看完这篇文章:链接得到得小结:事件传递的三个主体Activity、ViewGroup、View他们三个的嵌套关系一般是这样:但是还要明白的是:ViewGroup当然可以嵌套ViewGroup,即ViewGroup也可以是另一个ViewGroup的子View。ViewGroup其实是继承于View,是View的子类。事件分发机制相关三个经典函数dispatchTouchEvent():分发函数onInterceptTouchEvent():拦截函数onTouchEv

2020-12-08 21:47:59 1361 5

原创 ArrayList使用小结

概念ArrayList类,继承于抽象类AbstractList,实现了List接口,内部是一个可变的数组。继承结构因为其底层数据结构是一个数组,所以ArrayList的数据访问特性和Array相似:随机访问元素速度快,插入或者删除元素速度慢。另外,ArrayList线程不安全,建议在单线程中才使用ArrayList,而在多线程中可以选择Vector或者CopyOnWriteArrayList。构造方法ArrayList()ArrayList(int initialCapacity)Array

2020-12-06 15:42:40 248 1

原创 Android-实现图文混排编辑

RichTextXRichTextX一个帮助开发者实现Android图文混排编辑和显示的库。添加依赖implementation 'com.shine56.richtextx:richtextx:1.0.3-beta'在布局文件中像添加EditText一样在布局文件中文件中添加RichEditText<com.shine56.richtextx.view.RichEditText android:id="@+id/rich_edit_text" android:textS

2020-12-03 13:28:20 967

原创 解决“如何动态控制点击Edittext弹起/禁用软键盘”的问题

遇到一个需求,点击EditText中的图片时不唤起软键盘,点击文字则唤起软键盘。查了挺多博客,不知道时问题简单还是怎么样,很多种方法都没能解决我的问题。然后去看一下TextView(EditText继承于TextView)中的 onTouchEvent() 函数,仔细察看就能发现点击EditText之所以会弹出软键盘关键的代码。查看源码发现 红框是点击edittext会弹出软键盘的关键代码,而 蓝框的条件都是可以控制的。也就是说,我们动态控制其中一个条件就行了。...

2020-12-02 21:27:30 330

原创 计算机网络-应用层-万维网

应用层的知识很多,有FTP文本传送协议、域名系统DNS,电子邮件、动态主机分配系统DHCP、万维网。万维网WWW定义:万维网是一个大规模的联机式信息存储所。万维网是一个分布式的超媒体系统,是超文本系统的扩充它的出现使得互联网迅速普及,大众化,下面介绍它的几种规则。统一资源定位符URL作用:统一标记互联网中的万维网文档组成:<协议>://<主机>/<端口>/<路径>注意有时可以省略/<端口>和<路径>

2020-11-12 17:08:52 451

原创 Android实现编辑和显示富文本——Span方式

大概效果编辑显示思路首先要知道两个知识点(以下内容都基于这两个知识点):EditText/TextView可以通过添加Span的方式显示富文本。有些博客已经讲的很好了:传送门EditText/TextView可以解析并显示Html格式的文本:传送门知道这两点后,我大概整理了两个思路。我的想法是:如果你仅仅想实现图文混排,那就选方式2,因为思路简单,只需用到插入Span这个知识就行了。但当想实现较复杂的富文本时,比如给文本中某一小段实现字号变大,同时加粗,同

2020-07-30 21:24:26 4180 1

原创 利用bintray-release插件上传库到Bintray报错HTTP/1.1 404 Not Found [message:Repo ‘maven‘ was not found]问题

利用bintray-release插件上传库到Bintray,在执行命令gradlew clean build bintrayUpload -PbintrayUser=XXX -PbintrayKey=XXX -PdryRun=false报错:XXXX...HTTP/1.1 404 Not Found [message:Repo 'maven' was not found]原因:Bintray-release默认帮我们设置为了maven,但我们Bintray帐号中却没有创建名为maven的仓库

2020-07-30 18:08:13 177 1

原创 关于ViewModel的一个坑

在Activity回调onDestory()时,不能获取viewModel。通过Log发现在Activity回调onDestory()之前,viewModel已经执行clear()

2020-07-17 11:47:21 731 2

原创 使用lambda封装可复用的RecyclerView.Adapter

现在App大部分都不止一个列表,而每用一次都写一个适配器继承RecyclerView.Adapter重写它的方法。多次使用列表时,这项工作就变得重复冗余。我们可以使用lambda来封装一个可复用的Adapter。class MyAdapter<T>( @LayoutRes private val layoutId: Int) : RecyclerView.Adapter<BaseAdapter.MyHolder>() { private lateinit

2020-07-10 12:05:50 213

原创 关于kotlin这门语言

最近使用kotlin写一个项目,记录一下。一、高级函数很香如果有这样一段逻辑(Java)fun getA(): A { //相同的逻辑 val i = 0 val j = 1 //不同的逻辑 val a = A() a.setI(i) a.setJ(j) return a}fun getB(): B { val i = 0 val j = 1 val b = B() b.setI(i)

2020-07-01 15:27:36 102

原创 kotlin学习笔记之协程封装回调

协程是什么?我的理解是它是在单线程的状态下,模拟多线程的效果,去处理一些异步执行的逻辑,实现一些并发的任务,的一个东西。暂时把它理解为一个轻量级别的线程。使用笔记这里只写一些归纳。具体介绍和使用方法不会展开讲。需要具体使用方法:传送门我的简单使用归纳如下一、先分清楚这几种协程作用域构建器runBlocking{} 它的特点是会一直阻塞当前线程,直到该作用域下所用逻辑执行完毕。GlobalScope.launch{} 它的特点创建的是顶层协程,没处理好会造成没必要的资源消耗。比如你

2020-06-28 01:40:26 2853

原创 Android 记录一个使用AlarmManager的坑。

正常使用的代码是这样的:private void createAlarm(String message, int hour, int minutes){ AlarmManager alarmManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE); //设置定时发送广播的PendingIntent Intent in...

2020-03-05 12:16:58 521

原创 同步hexo配置文件到github

为什么要同步hexo配置文件?问:通过执行hexo g; hexo d; 我的本地文件不是已经同步到github了吗?答:不! 并没有。让我们看一下博客本地目录当我们执行完hexo g,hexo d;时,hexo只会帮我们做两件事情:1、将md文件以及其他你在hexo 所做的配置,转化成静态网页文件(例如:html、css等),而转化之后的文件会放在 .deploy_git(上图箭头所...

2020-01-11 14:04:59 1051

原创 从零踩坑PaddlePaddle——Fluid版本训练一个模型基本步骤

声明PaddlePaddle踩坑博客系列,没有直接的PaddlePaddle学习教程,纯属自己的踩坑学习记录!上一篇博客说了的,俺是小白,我也是跟着官网https://www.paddlepaddle.org.cn/以及夜雨飘零大大学习的,踩坑系列的代码可能部分或者全部来源于此。另外,夜雨飘零大大有一系列的PaddlePaddle学习教程,个人强推。概念我们都知道,PaddlePaddl...

2019-10-31 21:35:41 1073

原创 从零踩坑PaddlePaddle——准备工作 Window安装PaddlePaddle踩坑

前言大家都知道机器学习已经很流行了。身边的同学要么在学TensorFlow要么PaddlePaddle要么其他机器学习框架。我也去试一试吧。然而,关键问题来了我不会Python!先不管那么多,那我先安装PaddlePaddle配置环境总行了吧。于是跑到官网https://www.paddlepaddle.org.cn/install/quick准备按照知道安装PaddlePaddle。然后你...

2019-10-31 20:27:55 1404 2

原创 Android修改状态栏

效果图这里的处理都是Android5.0以上的。修改状态栏颜色Window window = activity.getWindow();window.setStatusBarColor(Color.MAGENTA);隐藏状态栏法一Window window = getWindow();View decorView = window.getDecorView();deco...

2019-10-04 17:03:20 1014

原创 Android Studio 在虚拟器安装报错:Error type 3 Error: Activity class {XXX.XX.MainActivity} is not found的问题

今天在AS安装一个项目到APP时报错:Error type 3Error: Activity class {XXX.XX.MainActivity} does not exist.原因:之前这个虚拟机安装过APP,我通过拖动图标把它删了,然而实际上并没有完全卸载。解决方法:点开setting把这个APP彻底删了就行。...

2019-09-23 21:58:07 382

原创 Android自定义View学习笔记

为什么要自定义View?系统配置的View满足不了我们的需求,我们需要针对业务制作一个自己的View。怎么自定义View?步骤是啥?我是小白啥不懂呀,怎么去自定义一个自己的view呢?下面跟着我一步步先定义一个正方形的view试试看。在values目录下新建一个firs.xml文件,编写内容如下:<?xml version="1.0" encoding="utf-8"?>...

2019-09-15 21:39:19 151

原创 四大组件生命周期之服务Service

https://www.jianshu.com/p/cc25fbb5c0b3https://www.jianshu.com/p/d4deea06566a

2019-08-26 17:57:51 172

原创 四大组件生命周期之Activity

ixn

2019-07-29 13:07:02 110

原创 Java简单实现爬取一张图片

怎么用Java比较简单地去网上爬一些东西呢,比如一些图片。作为Java小白(在此之前,都不知道爬虫是个什么,hhh…)最近遇到这个问题,去网上找了一些思路。大致是这样的:先访问某网络得到它的网站原代码用正则表达式匹配出你想要的内容。例子:现在在https://pixabay.com/zh/images/search/%E5%BF%AB%E4%B9%90/这个网站爬一张图片试试看。J...

2019-06-26 20:02:48 957

原创 Android-添加OkHttp依赖后不能使用的问题解决

OkHttp是基本是一个开发者首选的网络通信库。我在使用的时候先是添加了OkHttp的依赖。implementation 'com.squareup.okhttp3:okhttp:3.13.1'然后开始写代码,一路顺畅AS也没报错。然后再运行的时候,程序却崩溃了!经过断点调试后发现就是在实例化OkHttpClient的时候崩溃的。也就是这句:OkHttpClient client = ne...

2019-03-14 21:18:43 5087

原创 关于RecycleView子项添加删除等,第一行代码没写的小知识

设置item的间距在Activity添加代码int space = 50; //间距recyclerView.addItemDecoration(new SpacesItemDecoration(space));定义间距为50,调用addItemDecoration方法设置间距item的添加与删除添加在Adapter添加代码public void addData(int p...

2019-03-02 15:25:30 365

原创 Android--ImageView读取本地路径图片

对于一些比较大且需要长期保存的的图片,我们可能会选择把它存在Sdcard上,而看了网上一些对于Sdcard路径图片的读取,总结了两个小方法将路径初始化为Uriimageview.setImageURI(Uri.fromFile(new File(这里填路径字符串)));将流转化成Bitmap对象Bitmap bitmap = BitmapFactory.decodeStream(get...

2019-02-17 15:51:38 10099 2

原创 Android--使用LiteaPal操作SQLite

什么是LitePal?LitePal是Github上的开源数据库框架,使用它呢,可以使我们不需要直接用SQL语句就可以操作安卓自带的SQLite数据库,而是用面对对象的思维去操着数据库,这对于只接触过Java没接触过SQL的小白(比如笔者)简直是一大福音。这里介绍Android Studio Java语言下使用LitePal。配置LitePal第一步、在app/build.gradle的de...

2019-02-14 13:57:44 442

原创 Toolbar--解决setSupportActionBar报错

在使用Toolbar自定义标题的时候有一个坑。。Toolbar write_toolbar = (Toolbar)findViewById(R.id.write_toolbar);setSupportActionBar(write_toolbar);在活动中用setSupportActionBar()加载Toolbar是报错了。嗯?原因是studio默认导入的类不合适import ...

2019-02-12 20:24:30 941

原创 Android Studio--文件存储

移动数据的存储方式之一就是文件存储,这里对其进行介绍。使用特点与对象特点:不会对数据进行初始化处理,原封不动地讲数据存储到文件中一般这几种数据可以用文件对数据进行存储:简单的文本数据二进制数据使用方法Android文件存储的方法代码和Java文件存储思路是一样的。但是Android文件存储创建文件和Java有所区别。这里Context类提供了一个openFileOutp...

2019-02-12 18:57:20 1791

原创 Java--I/O(输入输出)流

本文介绍流以及Java的IO包里边的常用类的使用方法和特性流?I/O?流是一组有序的数据序列,根据操作可分为输入流和输出流即(I/O流),I/O流也可以理解为一种通道程序。而I/O包提供给了很多工具(类)对I/O流进行操作,从而达到安全地将源数据通过流传送到目的地的目的。源和目的地可以是磁盘,键盘,鼠标,显示器,网络,压缩包等等。输入/输出流将数据从流里读取进来——输入流I/O包...

2019-02-08 15:59:55 148

原创 Android--Toolbar实现标题栏

Android自带的那个Actionbar是不是感觉有点low,2014年Google推出了Material这种精美界面设计,而Toolbar便是其中的一个控件,用于制作自己的标题。Toolbar还可以做出更好的效果但这里至介绍其中其中几种。制作步骤如下:隐藏掉原来的标题打开/value/styles.xml文件修改代码&amp;amp;amp;amp;amp;amp;lt;style name=&amp;amp;amp;amp;amp;quot;AppTheme&amp

2019-02-08 15:51:03 8399

空空如也

空空如也

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

TA关注的人

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