
自定义View
文章平均质量分 54
自定义View
碧云天丶
这个作者很懒,什么都没留下…
展开
-
Android Path API笔记
lineTo(x,y)画直线,参数x,y坐标表示直线的终点坐标,起点坐标为当前画笔所在坐标.画笔初始坐标为(0,0),直接进行画直线效果如下:public class DrawingView extends View { private final Paint mPaint = new Paint(); private final Path mPath = new Path(); public DrawingView(Context context) { s原创 2021-08-30 11:23:58 · 205 阅读 · 0 评论 -
Android 简单点赞动画
思路找到Activity中DecorView的RootView确定点赞控件位于屏幕中的坐标值将点赞效果View加入到RootView中, 给效果View添加自己想要的动画效果.重复点击时候, 需要将效果View先移除掉再重新加入到RootView中.代码/** * 普通点赞效果, 点击控件后出现一个View上浮 */public class ViewLikeUtils { public interface ViewLikeClickListener { /**原创 2021-08-18 17:02:26 · 1205 阅读 · 0 评论 -
Android 布局, 父容器中一个View被另一个View挤出
Gif中意思是蓝色控件将红色控件挤出父容器了, 要求是不让红色控件被挤出父容器而蓝色控件也能自由的向下扩展.两个View水平,父容器选择LinearLayout.两个View宽度相加, 小于父容器宽度, 就不做处理. 效果和LinearLayout里一样.两个View相加宽度大于父容器宽度, 就要重新计算子View的宽度和高度了.下面是具体代码:public class HotNewsItemView extends LinearLayout { public HotNewsIte..原创 2021-08-05 16:09:47 · 930 阅读 · 1 评论 -
Android ImageView自定义BindingAdapter
这是一个很适用的小技巧以下代码都是来自开源项目PokemonGo代码@BindingAdapter("bindingAvator")fun bindingAvator(imageView: ImageView, url: String) { imageView.load(url) { crossfade(true) placeholder(R.mipmap.ic_launcher_round) }}@BindingAdapter("bind.原创 2020-11-19 16:07:32 · 670 阅读 · 0 评论 -
Android-PickerView 定制用法记录
地址英文日期Android-PickerView没有月份用英文的控件,在Issues中有人贴出了方法.继承WheelView实现:public class EnglishMonthWheelView extends WheelView { public EnglishMonthWheelView(Context context) { super(context); } public EnglishMonthWheelView(Context context,.原创 2020-09-14 15:08:20 · 337 阅读 · 0 评论 -
Android自定义View多个declare-styleable节点属性冲突处理
同一个Library中,不同的自定义View需要用不同的declare-styleable,如果两个不同的declare-styleable存在相同的属性就会构建失败,下面就是解决该问题的方法.<?xml version="1.0" encoding="utf-8"?><resources xmlns:tools="http://schemas.android.com/tools"> <declare-styleable name="StepperIndicat.原创 2020-08-31 15:28:07 · 1244 阅读 · 0 评论 -
Android 自定义View时添加DataBinding双向绑定功能
项目中用到组合控件, 这个控件用的特别的多, 但还想用DataBinding的双向绑定功能, 很多博客有写实现步骤, 这里面涉及了那些逻辑呢, 这篇笔记是我使用时候的总结.控件介绍组合控件中有一个EditText,用户向EditText输入新的内容时,MutableLiveData可以收到输入的内容,通过向MutableLiveData中setValue()新数据能实现主动更新EditText的内容.组合控件代码public class CustomeEditTextView extends.原创 2020-08-13 12:51:41 · 2572 阅读 · 0 评论 -
Android 自定义RecyclerView Item头部悬浮吸顶
控件地址概述自定义了一个FrameLayout,引入条目的头部布局加入到自定义FrameLayout中.将RecyclerView加入FrameLayout条目头部View的Alpha动画以及设置透明和不透明这个时机大多是通过打log来确定的,硬推理还是有些难.当屏幕显示区域的第二条Item距离控件顶端的距离小于条目头部View高度时,就开始移动条目头部View.当屏幕显示区域的第二条Item距离控件顶端的距离大于条目头部View高度时,就执行Alpha动画展示条目头部View.适当的时.原创 2020-05-09 18:33:28 · 1346 阅读 · 0 评论 -
Android 自定义ViewPager
概述处理滑动到左边界和右边界时,不允许滑动。页面滑动一半回弹,滑动一半以上自动切换下一界面。当页面内存在ScrollView这类子控件,事件要正常分发,不允许自定义ViewPager拦截事件。回弹与切换动画处理。源码分析初始化public ViewPagerY(Context context, AttributeSet attrs, int defStyleAttr) { ...原创 2020-05-05 18:56:37 · 814 阅读 · 0 评论 -
Android 自定义轮播图
轮播图地址概述写一个布局,其中有ViewPager,TextView,LinearLayout.ViewPager:用来承载图片TextView:用来展示文字描述LinearLayout:用来展示指示器自定义ConstraintLayout, 在该控件中处理页面切换逻辑等.分析获取自定义属性以及设置一些属性public BannerY(Context conte...原创 2020-05-04 15:49:03 · 415 阅读 · 0 评论 -
Andoird Nice Spinner源码解析
在这个项目基础上扩展了一些属性,扩展后项目源码中比较有意思的部分是如何将上一次选中的数据在下一次展示下拉框时排除该条数据初始化ListPopupWindow 时, 设置ListPopupWindow点击条目事件的回调方法,在这里处理ListPopupWindow中ListView被点击的条目的索引值与该条目中数据在数据源List中的索引值的运算关系./** * 初始化Popup...原创 2020-03-22 11:03:59 · 418 阅读 · 0 评论 -
Android 自动补齐邮箱后缀源码解析
项目地址初始化获取Item布局文件id@SuppressLint("ResourceAsColor")private void initParame(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { TypedArray typedArray = context.obtainStyledAttr...原创 2020-03-07 16:26:33 · 673 阅读 · 0 评论 -
Android 录制按钮源码解析
项目地址初始化布局文件中参数private void initParame(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.RButtonY, ...原创 2020-03-06 02:12:18 · 486 阅读 · 0 评论 -
Android 自定义开关源码解析
以ToggleColorY为例分析, ToggleImageY逻辑代码差不多项目地址初始化参数获取背景颜色,按钮颜色,开关状态@SuppressLint("ResourceAsColor")private void initParame(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { ...原创 2020-03-06 02:11:08 · 251 阅读 · 0 评论 -
VerificationCodeView 验证码自定义控件源码解析
https://github.com/JackTuoTuo/VerificationCodeView喜欢该控件请给作者start.演示原理在布局中文件中使用了一个透明的EditText来接受用户的输入事件, 在布局文件的LinearLa...原创 2019-01-02 15:00:09 · 2540 阅读 · 0 评论