选择器以及界面UI相关
文章平均质量分 69
马占柱
Android行业多年软件开发经验,从事多年移动App开发,涉及医疗健康、商城、聊天、代驾打车、特种设备防护、公安边检查验领域;目前从事汽车车载系统开发工作。
展开
-
recyclerview滚动辅助器,每次横向滚动展示完整的item
RecyclerView在24.2.0版本中新增了SnapHelper这个辅助类,用于辅助RecyclerView在滚动结束时将Item对齐到某个位置。特别是列表横向滑动时,很多时候不会让列表滑到任意位置,而是会有一定的规则限制,这时候就可以通过SnapHelper来定义对齐规则了。原创 2024-01-18 13:58:07 · 704 阅读 · 0 评论 -
处理横向textview 跑马灯效果,频繁刷新问题
自定义view处理跑马灯闪烁问题原创 2023-11-29 19:22:32 · 431 阅读 · 0 评论 -
12宫格 抽奖逻辑实现【直接可用】
完美实现12宫格抽奖效果原创 2023-07-17 11:18:28 · 606 阅读 · 0 评论 -
Android软键盘的监听与高度控制的几种方案及常用效果
本文我们会一起复习一下软键盘高度获取的几种方式,布局贴在软键盘上效果的实现与优化。事情是这样的,有一天我逛PDD的时候,发现这样一个效果,在搜索页面中,如果软件弹起了就会有一个语音搜索的布局,当我们隐藏软键盘之后就隐藏这个布局,然后我又看了一下TB的搜索页面,都是类似的效果,但是我发现他们的效果都有优化的空间。转载 2022-10-18 08:54:22 · 2108 阅读 · 0 评论 -
17个XML布局小技巧
如上,本文一共介绍了17个在日常编写xml的过程中对提升效率和提升性能的属性,如果你也有心得,欢迎评论补充。转载 2022-10-08 08:58:55 · 438 阅读 · 0 评论 -
没错,TheRouter 是我写的
补充:没错,货拉拉开源的路由库 —— TheRouter 是我写的大约在17年底到18年初的时候,我经常会讲一些当时做模块化开发的心得和踩坑历程。比如这几篇都是那时候写的:《》、《》、《》。但后来我慢慢不讲这些了,因为我发现做模块化,虽然我们能总结出来一套较为通用的解决方案,但很难通过几次短短的技术分享就跟别人讲清楚。并且很容易让人产生误解:我们是小公司,不需要做模块化。再加上因为当时是基于公司已有的基础建设,和制度的一些限制,并不能对外开源一套较为完善的模块化方案,这个种子就一直埋下了。转载 2022-09-26 16:12:00 · 274 阅读 · 0 评论 -
遍历手机SD卡所有文件,找到相关文件【直接可用】
遍历手机SD卡所有文件,找出相关类型的文件集合原创 2022-06-17 19:48:21 · 216 阅读 · 1 评论 -
安卓 获取视频的第一帧图片
不解释了,直接上车!/** * 获取视频第一帧图片 */private void getFirstIMG(String path) { try { //实例化 MediaMetadataRetriever对象 MediaMetadataRetriever mmr = new MediaMetadataRetriever(); mmr.setDataSource(原创 2020-12-24 20:43:04 · 430 阅读 · 0 评论 -
ScrollView中嵌套ViewPager不显示的问题
第一种方法:固定高度如果你要是知道ViewPager的高度是固定的话,那就好办了,直接固定写死就行,简单粗暴第二种方法:自定义ViewPagerViewPagerForScrollViewpackage com.lycompany.health.view;import android.content.Context;import android.util.AttributeSet;import android.view.View;import androidx.viewpag原创 2020-09-02 11:01:55 · 641 阅读 · 0 评论 -
加载等待展示【Loading】
package com.zhcs.gis.app.modulecore.core.component.tool;import android.app.Activity;import android.view.LayoutInflater;import android.view.View;import com.zhcs.gis.app.modulecore.R;import java.lang.ref.WeakReference;import androidx.appcompat.app.原创 2020-08-24 13:42:55 · 383 阅读 · 0 评论 -
使用CoordinatorLayout实现炫酷的效果【折叠控件】
详细介绍,就不转载了,直接看吧转载 2020-06-08 09:07:54 · 675 阅读 · 0 评论 -
android 按钮水波纹效果【背景色】
两种方式实现:第一种:Material自带水波纹通过如下代码设置波纹的背景:android:background="?android:attr/selectableItemBackground"波纹有边界android:background="?android:attr/selectableItemBackgroundBorderless"波纹超出边界【一般这种好看点,大多数也都是...原创 2020-05-06 15:02:20 · 2959 阅读 · 0 评论 -
小红书多图剪裁+微信图片选择器+大图预览+图片剪裁等等 相册
最近发现一个挺不错的开源库,推荐给大家。简介:小红书多图剪裁+微信图片选择器+大图预览+图片剪裁(支持圆形剪裁和镂空剪裁),已适配androidQ,借鉴并升级matisse加载内核!超强定制性可轻松实现知乎/马蜂窝/微博等特殊样式!支持跨进程回调!内部结构轻量级,无任何第三方开源库!支持support依赖!支持小红书多图剪裁、微信多图选择、单图剪裁、多图批量剪裁、大图预览 支持自定义所有...原创 2020-03-27 13:59:52 · 2014 阅读 · 1 评论 -
Android 模仿微信读书左右对齐的文字效果
左右对齐的文字效果,很常见,在大多数文章上都可以看到,这种效果能给人带来一种界面整洁的效果,但是如果只是左对齐的话,页面显示就会参差不齐;而app的页面大多数都是图形+文字的显示效果,左右对齐的文字效果需求还是非常大的;而反观Android的官方控件TextView并没有提供这种左右对齐的显示效果,那么就只能自己来造轮子了;这里会涉及到实现原理的解析,如果只是需要使用轮子,请拉到最底下;...转载 2020-03-12 09:39:37 · 554 阅读 · 0 评论 -
TabLayout的属性介绍
TabLayout在清单文件的属性设置:app:tabIndicatorFullWidth 为false时【标签下划线】自适应文字的宽度android.support.design:tabIndicatorColor — 设置tab指示器(tab的下划线)的颜色。android.support.design:tabIndicatorHeight — 设置tab指示器(tab的下划线)...原创 2019-12-12 10:11:44 · 1976 阅读 · 0 评论 -
Android改变状态栏字体颜色变换
具体做法,在你的baseactivity中的onCreate()中设置如下代码://因为这是API23之后才能改变的,所以你的判断版本if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //获取窗口区域 Window window = context.getWindow(); window.addF...原创 2019-12-03 10:52:49 · 1019 阅读 · 2 评论 -
打造最强RecyclerView,Item侧滑菜单,长按拖拽Item,滑动删除Item
版权声明:本文转自严振杰的博客。前几天写了一片关于RecyclerView滑动删除Item,RecyclerView长按拖拽Item的博客,本来很简单一个使用,阅读量还挺高的,原博客传送门。今天介绍一个RecyclerView Item侧滑菜单,RecyclerView滑动删除Item,RecyclerView长按拖拽Item的开源项目,效果看下图,大家也可以下载演示apk具体操作转载 2017-07-18 11:51:58 · 1011 阅读 · 0 评论 -
Android显示时间和日期的控件的使用总结
相关类的认识 Picker(DatePicker、TimerPicker、NumberPicker) 其中DatePicker和TimerPicker都有窗口的形式显示日期和时间,再返回数据。下面分别介绍这几种时间类的使用方法。一.DatePicker日期选择类的使用DatePicker常用的XML属性XML属性描述android:cal原创 2017-07-14 14:48:09 · 4296 阅读 · 0 评论 -
朋友圈动态发布时间计算
转自:IT_xiao小巫,http://blog.csdn.net/wwj_748前面的一篇文章给大家关于时间知识点的分享http://blog.csdn.net/wwj_748/article/details/11536421,本篇博客笔者想给大家分享的事如何通过Calendar来计算我们平时需要用到的年、月、日、时、分、秒等,还有如何计算类似朋友圈动态发布的时间。这里要大家去了解的几个转载 2017-07-19 09:58:46 · 1494 阅读 · 0 评论 -
修改源码自定义SwipeRefreshLayout样式——高仿微信朋友圈下拉刷新
上一篇文章里把SwipeRefreshLayout的原理简单过了一下,大致了解了其工作原理,不熟悉的可以去看一下:http://blog.csdn.net/u011443509/article/details/52017355上一篇里最后提到,SwipeRefreshLayout的可定制性是比较差的,看源码会发现跟样式相关的几个类都是private的而且方法是写死的,只暴露出了几个颜色转载 2017-08-08 16:36:53 · 599 阅读 · 0 评论 -
SwipeRefreshLayout自定义刷新效果MaterialRefreshLayout
SwipeRefreshLayout实现各种超炫的下拉刷新酷,适合初学者使用,来源:https://github.com/android-cjj/Android-MaterialRefreshLayout效果图:转载 2017-08-08 16:52:39 · 665 阅读 · 0 评论 -
改造PullToRefresh下拉刷新和上拉加载
改造PullToRefresh下拉刷新和上拉加载前言:本篇文章主要分为两部分,一是PullToRefresh下拉刷新和上拉加载的使用,二是PullToRefresh的改造,用自定义一个动画替换掉Loading的动画,如果动画很厉害的您,就可以自己添加喜欢的动画,做出自己想要的下拉刷新和上拉加载了。欢迎关注个人CSDN博客:Hensen_的博客:http://bl转载 2017-08-09 10:58:03 · 308 阅读 · 0 评论 -
Android开发常用的第三方框架
下面是Android开发中常用的第三方开发框架1. 缓存DiskLruCache Java实现基于LRU的磁盘缓存2.图片加载Android Universal Image Loader 一个强大的加载,缓存,展示图片的库Picasso 一个强大的图片下载与缓存的原创 2017-07-25 10:10:05 · 661 阅读 · 0 评论 -
让popupwindow显示在view的上方并与该view水平居中对齐
首先,废话少说,先上效果图:代码:public class MainActivity extends Activity implements OnClickListener{ private Button showBtn1; private Button showBtn2; @Override protected void onCreate(Bundle sa原创 2017-08-16 17:05:35 · 869 阅读 · 0 评论 -
Android 自定义一个可以展开显示更多的文本布局
在查阅其他博主的博文中,发现了一个比较不错的文本伸展的效果,在此借鉴学习。可以先看看到底是什么样的效果看起来很眼熟吧,很多应用中都有这样的使用场景,其实就是控制textview的maxlines属性,来做的。在这里就简单的说下定义的过程1.stretchy_text_layout.xml --这是创建一个布局,用来装裱以上展示的控件[html]原创 2017-08-10 18:28:51 · 947 阅读 · 0 评论 -
Android 仿微信的图片选择器ImageSelector的使用
今天给大家介绍一个仿微信的图片选择器:ImageSelector。ImageSelector支持图片的单选、限数量的多选和不限数量的多选。支持图片预览和图片文件夹的切换。在上一篇文章 《Android 实现一个仿微信的图片选择器》 中我介绍了ImageSelector的实现思路和分析了它的核心代码,有兴趣的同学可以看一下。完整的代码放在了GitHub,欢迎大家下载和使用。本篇文章为大家介绍Im转载 2017-08-23 19:19:33 · 1321 阅读 · 0 评论 -
总结和分析几种判断RecyclerView到达底部的方法
上一篇文章我讲到用事件分发的原理结合SwipeRefreshLayout写一个RecyclerView的上下拉,里面有一个判断RecyclerView是否到达底部的方法isBottom。我的同事用了这个上下拉之后发现有些小bug,没考虑周全,譬如各个子项高度不统一的时候,然后我找到原因是因为这个判断上下拉的问题。所以,我就去网上查到几种判断RecyclerView到达底部的方法,发现各有千秋。以下转载 2017-09-25 15:31:47 · 314 阅读 · 0 评论 -
倒计时欢迎界面(更有条理)
广告倒计时欢迎界面的实现,倒计时欢迎界面今天更新了一个App,打开这个App后弹出的页面是一个广告倒计时的页面,倒计时完毕后进入主界面。于是我闲着没事儿简易实现了一下这个功能,如图: 实现这个效果也很容易,在相应布局问下中添加TextView控件,控件的值就是倒计时的数字,这里我给倒计时添加了一个动画效果,项目的目录结构如下: AndroidManifest原创 2017-08-31 18:33:41 · 357 阅读 · 0 评论 -
Android Fragment嵌套ViewPager,ViewPager嵌套多个Fragment
前几天,项目中要实现这么一个功能。就配置了下。其实很简单,首先 需要阅读下我转载的前两篇文章,都是转载的郭神的,写的非常好。我的项目中逢者必用,其实就相当于一个很好的框架来使用,非常方便。前两篇的项目地址Android Fragment应用实战,使用碎片向ActivityGroup说再见和Android ActionBar应用实战,高仿微信主界面的设计,认真阅读,你会感觉到受益颇深。(当然原创 2017-09-18 17:24:44 · 1440 阅读 · 0 评论 -
安卓标签动态加减
大概的运行效果就是这种首先自定义一个类FlowLayout继承ViewGroup【代码页尾会有链接,考过来可以直接用的,我的是mate9亲测没问题】这是布局的代码<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.c原创 2017-09-18 17:59:54 · 543 阅读 · 0 评论 -
【闪屏页】启动页白屏(黑屏)VS重点解决背景图片拉伸变形问题
在做项目是,需要加一个splash,以美化应用,消除app启动等待的乏味一、使用环境 使用Android Studio activity 继承 AppCompatActivity, 实现splash功能 测试环境,没有虚拟返回按键的安卓手机和带有虚拟按键的手机,测试虚拟按键对splash的影响二、目标与一般实现 一般实现spla原创 2017-09-27 16:00:43 · 1074 阅读 · 0 评论 -
对PopupWindow常用API的简单封装,几行代码就搞定PopupWindow弹窗,使用Builder模式,链式调用,像使用AlertDialog 一样
示例效果图:这是他的GitHub挺不错的原方法在最下面,就只有一个类,很简洁很方便!使用方法更新1:背景变暗配置示例://创建并显示popWindow mCustomPopWindow= new CustomPopWindow.PopupWindowBuilder(this) .setView(contentView) ...转载 2017-10-27 10:35:53 · 1186 阅读 · 0 评论 -
android开发 -- 复制文本内容到系统剪贴板(自由复制)
直接上代码:(对应的类:android.content.ClipboardManager) //获取剪贴板管理器: ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); // 创建普通字符型ClipData原创 2017-10-11 14:40:34 · 1218 阅读 · 0 评论 -
Android通用的筛选栏实现
最近事情比较多,不管是生活还是工作,感觉节奏都在赶着走,对于之前相对比较喜欢自由的我,也要慢慢适应之后的节奏了,不管怎样,生活还在继续,加油~~今天来写一个通用的筛选栏的实现,也是因为之前项目中要好多地方用到筛选栏这么个东西,所以为了之后用起来比较方便,就简单的做了一些封装.废话不多说,看一下效果图:很多APP都有用到这个筛选栏,相信大家也不陌生.一、需求分析转载 2017-10-28 16:28:06 · 2645 阅读 · 0 评论 -
Android 实现沉浸式(使用SystemBarTint第三方)
1.导入Jar https://github.com/jgilfelt/SystemBarTint2.在BaseActivity中配置protected int mColorId=R.color.statusbar_bg;//状态栏的默认背景色private SystemBarTintManager tintManager; @Override protected void on原创 2017-10-12 10:59:29 · 556 阅读 · 0 评论 -
自定义View,有这一篇就够了
为了扫除学习中的盲点,尽可能多的覆盖Android知识的边边角角,决定对自定义View做一个稍微全面一点的使用方法总结,在内容上面并没有什么独特的地方,其他大神们的博客上面基本上都有讲这方面的内容,如果你对自定义View很熟了,那么就不用往下看啦~。如果对自定义View不是很熟,或者说很多内容忘记了想复习一下,更或者说是从来没用过,欢迎跟我一起重温这方面的知识,或许我的博文更符合你的胃口呢(*^_转载 2017-10-12 11:25:28 · 429 阅读 · 0 评论 -
Android实现签到日历控件
前言:最近在做公司的一个APP项目的时候,有一个需求是要做一个签到页面。笔者自己考虑了一下设计思路和算法,并且实现了一个可以签到的日历控件。 其实思路很简单,难点就在日期的绘制上。废话不多说,进入正题吧。效果预览 算法设计总体思路设计按照效果图中所示的绘制日历,把每一天当作一个处理对象,每一个处理对象都有一个行、列序号,只要能计算出相应的行列序号,那么绘制...转载 2017-10-23 15:35:22 · 3869 阅读 · 7 评论 -
三级联动省市区城市地区选择器v2.1.0新版本发布
原来是自己写的废了好大劲,后来看到了这个人的类库,挺方便的就转载过来保存一下。。。日后好用((⊙o⊙)…、、、这个“日后”好像说的有点歧义呀。。。。)v2.1.0版本发布!!!更新部分城市数据信息修复已知bug新增一些属性,使用更方便优化加载弹出选择器的速度。使用方法compile 'liji.library.dev:citypickerview:2.1.0'建议使转载 2017-11-09 11:10:14 · 373 阅读 · 0 评论 -
android Spinner控件详解【下拉选择框】
Spinner提供了从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值。上图显示的是Spinner常见的样式。这篇文章中我将讨论1.Spinner的基本用法 2.设置Spinner的Adapter (arrayadapter 和自定义Base翻译 2017-10-24 12:03:09 · 1044 阅读 · 0 评论 -
很好用的RecyclerView万能分割线【瀑布流】
总结起来就一句话:recycler.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.HORIZONTAL_LIST));原创 2017-11-02 15:20:19 · 699 阅读 · 0 评论