自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 解决动态添加RadioButton时单选失效问题

在上一篇文章。通过重新测量屏幕宽度和控件宽度,解决了RadioGroup不会换行的问题,这篇文章就说一下动态添加RadioButton时,RadioButton单选失效的问题。 其实很简单,在动态添加的时候给RadioButton设置唯一的id,并且在RadioButton的监听器里实现setTy...

2020-01-07 10:46:05

阅读数 19

评论数 0

原创 一个会自动换行的RadioGroup

项目中遇到了需要添加数量较多的radioButton,如果用自带的radioGroup的话。会超出屏幕。那么就需要添加一个会自动换行的radioGroup。原理其实也简单,就是重新测量计算屏幕宽度。再算出添加RadioButton后的宽度,超出则换行,不多说。直接撸代码: 新建 MultiLine...

2020-01-07 10:38:43

阅读数 8

评论数 0

原创 通过自定义View,创建一个圆形指示器

在项目中只要涉及到滑动的地方,很多时候都需要用到指示器。那么今天就通过自定义View来创建一个属于自己的指示器。 效果图: 首先,在res - values下新建一个attr文件, 可命名为:attr_indicator.xml 代码如下: <resources> <d...

2019-12-31 11:52:46

阅读数 6

评论数 0

原创 ViewPager的Adapter

viewPager在开发中是不少用到的,每个ViewPager都需要对应的Adapter,很简单,直接看代码: 首先,新建一个类集成 PagerAdapter,如下: public class GiveAwayViewPagerAdapter extends PagerAdapter { ...

2019-12-31 11:31:32

阅读数 6

评论数 0

原创 一个牛逼到惊掉你下巴的工具类 -- AndroidUtilCode

这个工具类基本涵盖了开发中所有能用到工具类,旨在快速开发,废话不多说,直接上API: API之前,还是需要先添加依赖: implementation 'com.blankj:utilcode:1.26.0' 然后是初始化,可以直接添加到appClaction或者baseAct...

2019-12-04 15:25:20

阅读数 39

评论数 1

转载 ViewModel简单使用(ViewModel + LiveData)

ViewModel官方介绍: ViewModel类旨在以生命周期意识的方式存储和管理与UI相关的数据。 ViewModel类允许数据在配置更改(例如屏幕旋转)后继续存在。 不做过多赘述。需要了解ViewModel的自行百度。这里只说使用。 首先,添加依赖: //androidx的版本,包含View...

2019-12-03 18:33:24

阅读数 10

评论数 0

原创 DataBinding的基本使用

DataBinding 是谷歌官方发布的一个框架,顾名思义即为数据绑定,是 MVVM 模式在 Android 上的一种实现,用于降低布局和逻辑的耦合性,使代码逻辑更加清晰。MVVM 相对于 MVP,其实就是将 Presenter 层替换成了 ViewModel 层。DataBinding 能够省去...

2019-12-03 15:27:11

阅读数 91

评论数 0

转载 Android基类BaseActivity简单封装

在日常的开发中,对于Activity所继承的AppCompatActivity进行一个简单的封装是再正常不过的。好处实在是不用多说。那么。我们今天就来看一个经过简单封装的BaseActivity。 首先,新建基类:BaseActivity.java public abstract class B...

2019-12-02 14:50:06

阅读数 8

评论数 0

转载 android 9网络适配

一、网络适配 从Android6.0开始google就建议使用https,不过你可以不鸟他继续使用http,但是从Android 9开始你就不得不鸟他了,因为http访问不了了。 1. 在res中新建xml文件夹 2.新建xml文件network_security_config.xml <?...

2019-12-02 14:03:16

阅读数 9

评论数 0

原创 撸一个本地广播 (LocalBroadcastManager) 的工具类

先说一下LocalBroadcastManager相比较BroadcastReceiver的区别: BroadcastReceiver的设计初衷是全局性,可接收来自本应用和其他应用发 过来的intent广播。这也同时给app带来了一定的安全风险。为了解决这个问题,LocalBroadcastMan...

2019-11-28 15:31:01

阅读数 7

评论数 0

原创 一个本地广播的工具类

广播在工作中可以替我们做很多事情。尤其是一些全局的通知,定义一个手动注册的广播工具类。不多说,直接撸。 首先,创建一个管理广播的工具类: AppReceiver.java 在这里插入代码片 ...

2019-11-28 15:02:08

阅读数 11

评论数 0

原创 设置padding后在滑动时覆盖padding区域

有没有遇到过这样的需求,在滑动到头的时候添加一个边距。在滑动时添加padding依然需要填充。 只需要在代码中添加如下代码即可(默认为true): android:clipToPadding="false" 还有一个,就是如果子view大于parent的时候,是否要裁剪, c...

2019-11-27 14:07:23

阅读数 3

评论数 0

原创 PopupWindow弹出菜单

首先添加工具类 MenuDetailPopup.java import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewG...

2019-11-25 11:28:27

阅读数 10

评论数 0

原创 一个sharedPreferences工具类

新建文件:PreferencesSaveUtil.java import android.content.Context; import android.content.SharedPreferences; import android.util.Base64; import android.ut...

2019-11-20 11:14:55

阅读数 7

评论数 0

原创 获取TextView指定行数显示的内容

最近在项目中遇到了一个超过指定行数就截取并显示展开的业务。由于中间还有换行等一系列问题,所以发现。靠判断指定行数总字数的方式已经不管用了。由此只能去判断总行数。 先来说一下判断总行数的方法: val maxLines = textView.lineCount 上面的maxLines就是获取Tex...

2019-11-15 16:15:28

阅读数 14

评论数 0

转载 RecycleView自动滑动效果(亲测有效)

在项目中遇到了需要实现RecycleView自动滑动的效果,虽然RecycleView有自带的滑动到某个位置。但是速度太快,还没看见就结束了。所以需要重新订制一下。 道理很简单,RecycleView有一个延时的方法:postDelayed,再起一个线程,配合上延时方法,就可以实现滚动了。看代码:...

2019-11-12 15:35:14

阅读数 6

评论数 0

原创 android实现从顶部滑动入场和从顶部退场动画

在android加入动画后,能使自己的app变得更有逼格。这次就实现一个从顶部滑动入场和沿原路滑动退场的动画。 首先,在res下新建anim文件夹,并且创建动画文件: 创建入场动画:anim_enter_top.xml <?xml version="1.0" encodi...

2019-11-08 18:10:56

阅读数 54

评论数 0

原创 ScrollView实现ios回弹效果

如果要想实现ios中的上下拉回弹效果。就需要重新订制ScrollView。 新建 ReboundScrollView 类,重写ReboundScrollView: mport android.content.Context; import android.graphics.Rect; import...

2019-11-08 18:00:23

阅读数 21

评论数 0

原创 RecycleView实现像ViewPager一次滑一页效果

仿微信读书首页一样,一次动翻一页效果,用RecycleView去实现,是因为这样可以实现卡片效果,如图: 先说一下,卡片的效果就是把RecycleView的item布局设置为 wrap_content 即可。 下面说一下一次只滑动一页的实现: //设置recycleView布局管理器 val l...

2019-11-04 18:22:32

阅读数 166

评论数 0

转载 一个可以代替VideoView简单好用的Android视频播放器

如果项目中需要用到视频播放功能,android原生的视频播放器坑实在太多了。所以介绍一个好用的第三方播放器,可自定义多种效果(如播放回调、缓冲动画等)。简单靠谱,不多废话,直接看代码。 1、首先添加依赖 implementation 'com.linsea:universalvideov...

2019-10-30 14:52:39

阅读数 64

评论数 0

原创 展开--收起 功能实现(kotlin+java)

平时关于展开和收起的使用效果是不少的。也有一些各路子的实现方式。关于这个实现,这里我用字符串裁剪+富文本的方式去实现。 效果图: 首先。我们要算出手机屏幕的宽度,如果在设计上两边有边距的话记得减去,如此,得到的便是TextView的宽度: val dm = host.resources.disp...

2019-10-15 10:34:48

阅读数 7

评论数 0

原创 MultiTypeAdapter —— 打造高效并解耦的RecycleView适配器

MultiTypeAdapter 一款轻量级支持多数据类型的 RecyclerView 适配器; 使用简单,完全解耦; 通讯聊天界面、朋友圈布局、淘宝 UI等复杂页面 优雅快速实现,无论你是一种数据有多种VIew类型,还是多种数据多种类型,还是两者都有,统统帮你快速地、优雅地搞定! 好了,话...

2019-09-06 18:35:31

阅读数 52

评论数 0

转载 BitmapFactory.decodeResource为null的处理方法之一

问题代码: Bitmap bitmap =BitmapFactory.decodeResource(getResources(),R.drawable.danger_build10); 其中R.drawable.danger_build10是一个vector图片,此代码在4.4上运行正常,但在5....

2019-09-06 11:24:40

阅读数 162

评论数 0

翻译 Android 内存优化探索

目录 为什么要做内存优化? 什么是 Dalvik? 什么是 ART? 什么是低杀? 图片对内存有什么影响? 什么是内存泄漏? 什么是内存抖动? 什么是 Memory Profiler? 什么是 MAT? 怎么用 MAT 分析内存泄漏? 什么是 LeakCanary? 怎么获取和监听系统的内存状态...

2019-09-03 11:52:59

阅读数 36

评论数 0

原创 一个好用的三方轮播Banner

轮播Banner在开发中是必备的一个功能。如果自己实现的话想对来说比较耗费时间和成本。 那么这时候就需要一个简单好用的三方轮子了。 好。不多说。直接上代码。 1、首先,老规矩,导入依赖。 implementation 'com.youth.banner:banner:1.1.5'...

2019-09-02 15:03:12

阅读数 11

评论数 0

原创 TabLayout加强版 —— com.flyco.tablayout.SlidingTabLayout

TabLayout相信很多人都知道并且用过。一个很不错的Tab切换View,但是也存在一定问题。就是indicator(指示器)不能修改长短。这个功能让人很无语。关于这个问题的修改,网上有很多神仙方案。但是各有利弊。 所以。今天就来说一下 SlidingTabLayout,据说是google官方推...

2019-08-29 12:00:23

阅读数 54

评论数 0

翻译 SmartTabLayout——高度自定义的TabLayout

TabLayout 是一个很好用的指示器。但是缺点是指示器的宽度不可自定义。有时候并不能达到项目的需求。 百度上面大多数利用反射,(具体可百度查询),这种方法确实可以把下划线变短,但是同时也会缩短Tab的点击区域,并且过于短后会影响Tab上TextView的UI显示效果。总之,治标不治本,不是我想...

2019-08-28 15:40:22

阅读数 47

评论数 0

原创 Android可定制 圆形/圆角 Imageview(RoundedImageView)

目前在应用开发中,矩形的头像基本没有了,大多是圆形或圆角矩形,本文简简单单轻轻松松帮你搞定圆形或圆角矩形的头像。 可以自定义控件实现,而本文使用的是第三方开源控件RoundedImageView,改控件支持圆形、椭圆、圆角矩形等,使用非常方便。 <> 添加RoundedImageVie...

2019-08-28 13:10:02

阅读数 19

评论数 0

原创 android 9.0 使用http请求异常问题

原因:使用android 9.0设备进行http网络请求。会出现网络连接没有权限等问题,包括webView。 解决方案1: app请求改用https 解决方案2: targetSdkVersion 降到27以下 解决方案3: 在res下建一个xml文件夹,然后创建一个名为:network_sec...

2019-08-28 11:34:27

阅读数 196

评论数 0

转载 利用Chrome查看SQLite数据库数据

Android系统的安全性越来越高,项目中开发有时候会用到SQLite,但是SQLite的查看方式却越来越麻烦。这次就提供一个好用的数据库查看方式。 1、首先。需要电脑上装有Chrome浏览器。 2、然后在项目中添加依赖: implementation 'com.facebook.ste...

2019-08-28 11:13:30

阅读数 317

评论数 0

转载 使用RecyclerView实现多行水平分页的GridView效果和ViewPager效果

前些天看到有人在论坛上问这种效果怎么实现,没写过也没用过这个功能,网上查了一下,大多是使用ViewPager+GridView或者HorizontalScrollView+GridView实现,不过貌似有点复杂,太懒,没仔细看。这两天学习RecyclerView的使用(网上有很多文章,建议大家阅读...

2019-08-28 10:52:33

阅读数 7

评论数 0

翻译 利用SharedPreferences保存List数据

背景 存储List数据到本地的方式有很多种,对于不想用sqlite或者其他方式,又或是数据量很少的话,不妨可以试下用 SharedPreferences保存。由于SharedPreferences只能保存Map型的数据,必须要做其他转换才行。 应用场景 用于保存各种List数据,最常见的莫过于,L...

2019-08-15 10:50:08

阅读数 40

评论数 0

翻译 一个很好用的引导层框架--NewbieGuide

一个很方便的图层引导。支持activity和fragment。不需要自己再手动写判断是否第一次打开应用。 项目地址:NewbieGuide 添加依赖 项目的build.gradle添加 allprojects { repositories { ... maven { url '...

2019-07-26 11:53:06

阅读数 393

评论数 0

翻译 一个很6的动画框架--Lottie

Lottie支持多平台,使用同一个JSON动画文件,可在不同平台实现相同的炫酷动画效果。Android 通过Airbnb的开源项目lottie-android实现,最低支持 API 16; 使用之前,在项目中添加依赖 implementation 'com.airbnb.android:...

2019-07-26 11:20:55

阅读数 115

评论数 0

原创 使用Glide获取bitmap并且实现高斯模糊

Glide就不用多说了。一个图片框架。首先,添加Glide依赖地址 implementation 'com.github.bumptech.glide:glide:3.7.0' 下一步是高斯模糊的工具类:BitmapBlurUtil, 并且可以修改下面三个变量的值来决定...

2019-07-15 14:50:03

阅读数 146

评论数 0

原创 viewPager嵌套fragmen通用adapter

viewPager嵌套fragment很常用,来一个封装好的通用adapter。 先创建一个FragmentInstancePagerAdapter,代码如下: import androidx.fragment.app.Fragment import androidx.fragment.app.F...

2019-07-15 14:42:15

阅读数 23

评论数 0

翻译 FileDownloader下载文件

fileDownloader是一个性能比较高的一个下载库, 优点 多任务下载 多线程下载 断点续传 高并发 话不多说,直接干! 先添加依赖: compile 'com.liulishuo.filedownloader:library:1.6.4'...

2019-07-05 16:17:21

阅读数 532

评论数 0

原创 仿ios滑动返回上一页

ios开发中有关于滑动返回上一页的功能,在很多的项目中也会出现类似的需求。本文中的方法可以自定义实现上下左右多方向滑动回返,不多说,看代码 首先第一步,添加相关的依赖 compile 'me.imid.swipebacklayout.lib:library:1.0.0' ...

2019-07-02 22:55:34

阅读数 88

评论数 0

翻译 饼状圆形进度条

这是一个用Paint画图实现的进度条,仿iphone带进度的进度条,线程安全的View,可直接在线程中更新进度 先看一下效果图 ​​​​​​​​ 不多说,下面上源码: 先定义一个RoundProgressBar,继承自view public class RoundProgressBar exten...

2019-07-02 22:44:17

阅读数 71

评论数 0

翻译 滑动列表仿ios尼阻回弹效果实现

滑动列表实现仿ios的尼阻回弹,可作用于 listView , gridView ,RecyclerView等列表组件,别的组件没试过。有兴趣的可以试一试。 实现原理:定义一个外层容器,内层可以是recyclerview,Listview,ScrollView等可以滑动的组件,主要是在事件分发上动...

2019-07-02 22:35:21

阅读数 159

评论数 0

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