自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 通过NestedScrolling实现RecyclerView拖拽回弹效果

通过NestedScrolling实现RecyclerView拖拽回弹效果

2023-08-10 14:06:21 455

原创 Android ViewPager2获取当前fragment

在ViewPager中可以使用PagerAdapter中的instantiateItem方法获取指定索引的Fragment,ViewPager2的Adapter中没有相应的方法,怎么获取呢?index 就是想获取的fragment的索引。

2023-05-30 11:09:20 1541

原创 Android GestureDetector的使用

Android GestureDetector的使用

2023-04-23 11:27:59 492

原创 Android Canvas 绘制渐变线

Android Canvas 绘制渐变线条

2023-04-23 11:06:51 1503

原创 ObservableField双向绑定/BindingAdapter注解设置自定义属性/RecyclerView绑定

ObservableField双向绑定/BindingAdapter注解设置自定义属性/RecyclerView绑定

2023-03-27 10:47:21 598

原创 Android 绘图基础:Canvas画布——自定义View基础(绘制表盘、矩形、圆形、弧、渐变)

Android 绘图基础:Canvas画布——自定义View基础(绘制表盘、矩形、圆形、弧、渐变)

2023-03-03 15:51:55 4282

原创 Android 圆弧形 SeekBar

Android 圆弧形 SeekBar

2023-03-03 15:20:32 1261

原创 Android 自定义TextView解决,未满一行换行问题

1) TextView在显示中文的时候 标点符号不能显示在一行的行首和行尾,如果一个标点符号刚好在一行的行尾,该标点符号就会连同前一个字符跳到下一行显示;2)一个英文单词不能被显示在两行中( TextView在显示英文时,标点符号是可以放在行尾的,但英文单词也不能分开 );如果只是想让标点符号可以显示在行尾,有一个简单的方法就是在标点符号后加一个空格,则该标点符号就可以显示在行尾了;将默认的textview替换为上面的自定义view就可以解决了。

2022-10-20 21:10:31 1804 1

原创 mac下添加flutter环境变量

1.打开命令终端,直接在home目录下,输入命令:open -e .bash_profile会打开.bash_profile文件,如果没有这个文件,你需要先用命令touch .bash_profile 创建。打开之后,添加如下配置:添加完之后 command+s 保存 export FLUTTER_ROOT=你的flutter安装目录 export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_ST.

2021-01-13 21:45:12 447

转载 connect to maven.google.com:443 connect timed out 连接不上的解决办法

allprojects { repositories { maven {url 'https://maven.google.com'} maven {url 'https://www.jitpack.io'} jcenter() } } 在build.gradle中进行上述的Google的maven地址配置时报错如下:网上说最新版本的AndroidStudio (Canary 9) + Gradle 已经使用 google...

2021-01-06 10:04:40 2650

转载 在eclipse导入项目的步骤

在eclipse导入项目的步骤1. Import2. Next3. 确定 选中copy projects into workspace Finish这样项目就导入进来了。4.导入jar包 Configure Build Path 把白色的都remove Add JARs打开WebContent → Web-INF → lib ;把所有...

2020-08-04 09:37:43 6632

转载 springboot + mybatis plus中的条件构造器queryWrapper、updateWrapper

最近上手的项目是springboot+MP的,自己在学习的同时也来记录一下一些强大的插件或者类首先放一张搜到的wrapper构造图然后具体对应开发方法: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...

2020-07-13 11:06:10 899

原创 mybatis Sql查询 返回对象或者list数据中包含一个对象的list集合

1. 查询的数据对象@Datapublic class JdOrder implements Serializable{ private Long orderId; private Long finishTime; private Integer orderEmt; private Long orderTime; private Long pa...

2020-02-21 16:20:11 4984

转载 IDEA从下载安装到使用,手把手教你

一.IDEA的下载IDEA下载地址:https://www.jetbrains.com/idea/download/#section=windowsIDEA 分为两个版本:旗舰版(Ultimate)和社区版(Community)。旗舰版收费(限 30 天免费试用),社区版免费二.安装过程 在这我们选择装旗舰版,社区版虽然免费,但是有些功能不全 ...

2019-12-06 12:11:11 1032

转载 MySQL中去重 distinct 用法

在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而无法返回其他字段,例如有如下表user:用distinct来返回不重复的用户名:select distinct na...

2019-03-15 10:19:25 290

转载 Android MVVM快速开发框架

基于DataBinding框架,MVVM设计模式的一套快速开发库,整合Okhttp+RxJava+Retrofit+Glide等主流库,满足日常开发需求。使用该框架可以快速开发一个Android应用。MVVMHabit目前,android流行的MVC、MVP模式的开发框架很多,然而一款基于MVVM模式开发框架却很少。MVVMHabit则是一款以谷歌的databinding为基础,整合Ok...

2019-03-05 17:27:48 681

转载 RadioGroup 自动换行且保留点击事件

相信用过RadioGroup的同学都踩过很多坑,其中之一就是这个控件设计的不是很合理,不能设置里面的radiobutton的 排列方式(几行几列),导致我们开发的时候要调整里面的布局很是麻烦。另外一个坑是 动态new 的时候选默认值的问题,这个在之前的一篇文章 RadioGroup中RadioButton默认选中问题  这个里面已经提到过了,就不再细说了。今天主要说说这个radiogroup怎...

2019-01-28 13:15:10 335

转载 Android Fragment切换动画的2种实现方式

Fragment切换动画在Activity跳转之间可以设置动画效果,例如平移,渐变,旋转等动画,当然在Fragment中也可以设置切换的动画效果,可以达到跟ViewPager切换动画类似的效果。在Fragment中设置自定义切换动画主要分为了两种情景,一种是使用 android.app.Fragment包里面的Fragment类时,FragmentManager里面的FragmentTransa...

2019-01-23 10:39:00 1162 2

转载 setVisibility()设置过度动画

在做项目的过程中用到setVisibility()时,有时感觉过渡非常生硬。于是为其添加消失的动画让它过渡自然些。于是在网上找了好久方法,比较模糊。自己试了试,把实现的方法写出来。实现的方法很简单:只需要在布局文件中添加  android:animateLayoutChanges="true"  这个属性就可以了。值得注意的是android:animateLayoutChanges="...

2019-01-09 11:58:52 3281

转载 Can't toast on a thread that has not called Looper.prepare()

前言最近一段时间在忙着开发一款自己的APP,将自己常用的功能需求都加入进入,同时在GitHub上跟着大牛们学习新的技术,提升自己的技能,在开发的过程中不断的发现问题和解决问题。在开发过程遇到了这样一个问题:Can't toast on a thread that has not called Looper.prepare(),如果在一个线程中没有调用Looper.prepare(),就不能在...

2018-12-04 15:27:36 3758 2

转载 Android图片加载框架最全解析(八),带你全面了解Glide 4的用法

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/78582548本篇将是我们这个Glide系列的最后一篇文章。其实在写这个系列第一篇文章的时候,Glide就推出4.0.0的RC版了。那个时候因为我一直研究的都是Glide 3.7.0版本,再加上RC版本还不太稳定,因此整个系列也都是基于3.7.0版本来写的。而现在,Gli...

2018-11-21 15:59:37 168

转载 android如何监听应用进入后台,回到前台时做相应逻辑

当我们使用手机银行app时,突然收到短信或电话时app会进入后台,再次回到手机银行界面的时候会被要求重新输入登陆密码或验证指纹,这一需求的设计主要是出于安全性考虑,验证用户身份,保证资金的稳固。  那么,以上的需求又是怎么实现的呢?怎么监听app的状态,达到app进入后台再回到前台时,总是跳出一个界面要求用户输入登陆密码或验证指纹呢?1.在application中注册监听方法,一般写在onC...

2018-09-11 09:18:52 5414

转载 Android fragment 设置横屏后,锁屏之后重启手机导致奔溃问题

因为做的是平板程序,所以默认给它设置了横屏的功能,但是遇到一个很奇怪的问题是锁屏之后,在解锁打开手机,我的手机应用就无缘无故的退出了。后来分析原因是因为锁屏之后,系统默认变为竖屏,这样activity就destory,重新执行了oncreate,而原本fragment就是与activity的生命周期挂钩,打开时,由于父activity已经销毁,自然会报错,所以解决的办法,参考这位前辈的连接如下:...

2018-09-06 13:44:45 380

转载 Android ViewPager Fragment 切换刷新数据,解决生命周期只走一次的问题

前言Activity的生命周期都应该熟悉,Fragment其标准生命周期也仅比Activity多出一些流程,如onCreateView(),比较好理解。了解Activity、Fragment的基础知识可以先转头去看下我的博文:Android Fragment项目中使用及生命周期分析 认识ViewPager页面加载机制 ViewPager的页面缓存机制默认是两个,如果有三...

2018-08-03 09:54:18 1217

转载 详解Android Material设计中阴影效果的实现方法

View可以投下的阴影,一个View的elevation值决定了它的阴影的大小和绘制的顺序。可以设置一个视图的elevation,在布局中使用属性:android:elevation?<TextView  android:id="@+id/my_textview"  android:layout_width="wrap_content"  android:layout_height="wra...

2018-07-02 17:09:11 814

原创 ScrollView嵌套GridView导致GridView不滑动

private float scrollDownY;private float scrollMoveY;mGridView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { sw...

2018-06-28 09:46:32 755

转载 Android 教你一步步搭建MVP+Retrofit+RxJava网络请求框架

声明:原创作品,转载请注明出处http://www.jianshu.com/p/7b839b7c5884之前公司的项目用到了MVP+Retrofit+RxJava的框架进行网络请求,所以今天特此写一篇文章以做总结。相信很多人都听说过MVP、Retrofit、以及RxJava,有的人已经开始用了,有的人可能还不知道这是什么,以及到底怎么用。不过没关系,接下来我将为你一一揭开他们的神秘面纱,然后利用这...

2018-06-15 17:26:18 277

转载 Android retrofit 注解@QueryMap和@Body的区别

使用retrofit这样框架快一年了,以前使用它传递参数时都是用@QueryMap注解传递,虽然知道这样不是很好,但是当时换框架的时候看到工作量太大就没有换成实体类形式了,之前的使用方式如下图:由于最近在研究java后台,搭建了一个SSM框架想测试一下;因为之前以为HashMap只能采用这种方式传递,在今天的测试中发现并不是,其实使用HashMap同样可以采用@Body注解,而且@QueryMap...

2018-06-15 17:12:59 1170

转载 这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)

前言在Andrroid开发中,网络请求十分常用而在Android网络请求库中,Retrofit是当下最热的一个网络请求库今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你们会喜欢。如果对Retrofit v2.0的源码感兴趣,可看文章:Android:手把手带你深入剖析 Retrofit 2.0 源码目录1. 简介特别注意:准确来说,Retrofit 是一个 RESTful 的...

2018-06-15 17:07:32 268

转载 网络加载框架 - Retrofit

Retrofit是什么?Retrofit其实我们可以理解为OkHttp的加强版,它也是一个网络加载框架。底层是使用OKHttp封装的。准确来说,网络请求的工作本质上是OkHttp完成,而 Retrofit 仅负责网络请求接口的封装。它的一个特点是包含了特别多注解,方便简化你的代码量。并且还支持很多的开源库(著名例子:Retrofit + RxJava)。还想说一点题外话,Retrofit和OkHt...

2018-06-15 17:03:48 246

转载 Android 自定义控件之第三讲:obtainStyledAttributes 系列函数详解

在项目中开发自定义控件时,或多或少都会用到 obtainStyledAttributes(AttributeSet, int[], int, int) 或者 obtainAttributes(AttributeSet, int[]) 函数,它们的主要作用是:根据传入的参数,返回一个对应的 TypedArray 。获取 TypedArray 对象 的函数一共四个:1.public TypedArra...

2018-06-15 13:22:25 1457

转载 Android 自定义控件之第二讲:TypedArray 详解

Google 开发者平台是这么解释这个类的:大体意思是:TypedArray 是一个数组容器,在这个容器中装由 obtainStyledAttributes(AttributeSet, int[], int, int) 或者 obtainAttributes(AttributeSet, int[]) 函数获取到的属性值。用完之后记得调用 recycle() 函数回收资源。索引值用来获取 Attri...

2018-06-15 11:28:52 880

转载 Android 自定义控件之第一讲:attr format 取值类型

1. reference:参考某一资源ID。(1)属性定义:<declare-styleable name = "名称"> <attr name = "background" format = "reference" /></declare-styleable>123(2)属性使用:<ImageView android:layout_

2018-06-15 10:55:04 228

原创 Android 雷达图(蜘蛛网状图)

先看效果 上代码package com.example.hj.myapplication;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Pat...

2018-06-14 17:20:14 1674

转载 自定义控件三部曲之绘图篇(六)——Path之贝赛尔曲线和手势轨迹、水波纹效果

从这篇开始,我将延续androidGraphics系列文章把图片相关的知识给大家讲完,这一篇先稍微进阶一下,给大家把《android Graphics(二):路径及文字》略去的quadTo(二阶贝塞尔)函数,给大家补充一下。 本篇最终将以两个例子给大家演示贝塞尔曲线的强大用途: 1、手势轨迹利用贝塞尔曲线,我们能实现平滑的手势轨迹效果 2、水波纹效果电池充电时,有些手机会显示水波纹效果,就是这样做...

2018-06-14 10:39:07 296

转载 自定义控件之绘图篇( 五):drawText()详解

一、概述1、四线格与基线小时候,我们在刚开始学习写字母时,用的本子是四线格的,我们必须把字母按照规则写在四线格内。比如:那么问题来了,在canvas在利用drawText绘制文字时,也是有规则的,这个规则就是基线!我们先来看一下什么是基线:可见基线就是四线格中的第三条线!也就是说,只要基线的位置定了,那文字的位置必然是定了的!2、canvas.drawText()(1)、canvas.drawTe...

2018-06-14 10:36:38 859

转载 Android 2D Graphics学习(二)、Canvas篇1、Canvas基本使用

Canvas的意思是画布,表现在屏幕上就是一块区域,我们可以再上面使用各种API绘制我们想要的东西。可以说,Canvas贯穿整个2D Graphics,android.graphics中的所有类,几乎都于Canvas有直接或间接的联系。所以了解Canvas是学习2D Graphics的基础。Android官方文档对Canvas的简介很好的介绍了Canvas的使用:[java] view plain...

2018-06-14 10:33:38 192

转载 自定义控件之绘图篇(四):canvas变换与操作

一、平移(translate)canvas中有一个函数translate()是用来实现画布平移的,画布的原状是以左上角为原点,向左是X轴正方向,向下是Y轴正方向,如下图所示translate函数其实实现的相当于平移坐标系,即平移坐标系的原点的位置。translate()函数的原型如下:void translate(float dx, float dy)参数说明:float dx:水平方向平移的距离...

2018-06-14 10:32:18 204

转载 Android 2D Graphics学习(二)、Canvas篇2、Canvas裁剪和Region、RegionIterator

canvas 还提供裁剪的功能。 裁剪功能由Canvas提供的一系列的clip...方法 和quickReject方法来完成。 前面已经提到,真正提供可绘制区域的是Canvas内部的mutable bitmap。 Canvas更像是一个图层,我们只能在这上面的图层来绘制东西。1、首先介绍Region类Region,中文意思即区域的意思,它表示的是canvas图层上的某一块封闭的区域。[java] ...

2018-06-14 10:19:52 144

转载 自定义控件之绘图篇(三):区域(Range)

一、构造Region1、基本构造函数 public Region()  //创建一个空的区域   public Region(Region region) //拷贝一个region的范围   public Region(Rect r)  //创建一个矩形的区域   public Region(int left, int top, int right, int bottom) //创建一个矩形的区域...

2018-06-14 10:17:34 247

空空如也

空空如也

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

TA关注的人

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