自定义控件
文章平均质量分 68
Android 自定义控件 实现原生安卓没有的功能
lbj23vs6
这个作者很懒,什么都没留下…
展开
-
Android 自定义控件之---饼图
文章目录前言一、创建PieChartView继承View类?二、创建一些对象,用于绘图三,onDraw方法1.循环把四个扇形画出来2.我们把第三个扇形抽出来,需要做特殊处理四,效果展示总结效果确实比较简单,但是这个例子可以很好的作为初学Android自定义控件的开发者的一个小练习。code前言如下图这样的一个饼图效果,看上去很简单,不如让我们用Android自定义控件的知识来实现它一、创建PieChartView继承View类?public class PieChartView extends原创 2022-01-13 00:07:41 · 1758 阅读 · 0 评论 -
android 文字居中的两种方案--静态文字--动态文字
文章目录前言一、静态文字垂直居中?code效果二、动态文字垂直居中你可能会好奇,为什么动态文字不继续用上面静态文字的解决方案呢?不是很方便简洁吗?解决方案code:效果:前言一行文字在View中垂直居中不是一件容易的事情,下面针对静态文字和动态文字(内容会变动)的情况提出两种居中的方案。一、静态文字垂直居中?由于静态文字不怎么变动,我们只需要测量出这段文字的bounds,在垂直方向上减去中心点的偏移就可以实现居中code//静态文字内容private const val CONTENT .原创 2021-12-06 19:55:02 · 2085 阅读 · 0 评论 -
xfermode 和预期效果不符
项目场景:利用xfermode画一个矩形和原,设置不同的xfermode类型达到不同的效果,就是用两个图形测试下面的效果问题描述:如果我们这么写:canvas.apply { val saveLayer = saveLayer(150.dp, 50.dp, 300.dp, 200.dp, paint) drawRect(150.dp, 100.dp, 250.dp, 200.dp, paint) paint.xfermode = mode原创 2021-12-05 20:18:23 · 228 阅读 · 0 评论 -
自定义View-->仪表盘
文章目录前言一、先画带锯齿的弧形代码和注释如下:重要点1.PathDashPathEffect2. 刻度和间隔二、画指针总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、先画带锯齿的弧形代码和注释如下:import android.content.Contextimport android.graphics.*impor原创 2021-12-05 16:03:25 · 2261 阅读 · 0 评论 -
手写简易的viewPage--Android---自定义控件
文章目录前言效果展示一、思路是什么?1.一页一个view占满屏幕,所以把自己的所有空间给childView去测量2.摆放时一页摆放一个子view,可以看出left,right是进行累加的3.viewGroup要抢占子view的touch序列4.viewGroup自己的onTouchEvent前言在学习了view的点击事件的效应后,我们自己来写一个viewPage,功能比较简单,只有两个页面,我们可以左右滑动来翻页效果展示一、思路是什么?1.一页一个view占满屏幕,所以把自己的所有空间给ch原创 2021-10-06 20:36:12 · 226 阅读 · 0 评论 -
多点触控 Android 自定义控件
文章目录前言一、接力棒型或抢占型二、协作型思路code1.引入库2.读入数据总结前言在之前的那篇博客中我们做了一个可以随手指移动的图片view,只能支持单指操控,如果我们多指触控就没事我们想要的效果多点触控可以有下面这三种类型①:接力棒型或抢占型②:协作型③:互不干扰型一、接力棒型或抢占型示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、协作型思路①:确认一个触摸点作为控制图片的特殊触摸点②:移动时就把拥有图片控制权的触点作为唯一触点③原创 2021-10-06 12:13:19 · 224 阅读 · 0 评论 -
Android 画板 多指操控 多指绘图
文章目录前言一、思路二、效果展示三:完整代码前言是否可以做一个画板,多根手指可以同时绘图,手指移开,移开手指对应的绘图路径也跟着消失一、思路①:每根手指对应一个path,记录手指移动时的路径val actionIndex = event.actionIndexval path = Path()path.moveTo(event.getX(actionIndex), event.getY(actionIndex))②:创建一个map,让pointerID作为key,path作为value原创 2021-10-06 12:09:31 · 407 阅读 · 0 评论 -
图片随手指移动 --自定义控件--onTouchEvent
文章目录前言一、思路?二、完整代码前言写一个可以随手指移动而移动的图片,用自定义view实现,重写onTouchEvent方法一、思路?①:定义两个偏移量作为绘制图片时的起始位置 private var offsetX = 0f private var offsetY = 0f②:按下时记录手指的位置声明private var downX = 0fprivate var downY = 0f记录 MotionEvent.ACTION_DOWN原创 2021-10-05 15:11:25 · 260 阅读 · 0 评论 -
Android自定义view---手势识别,双击,惯性滑动,相册图片效果
文章目录前言一、GestureDetectorCompat是什么?二、使用步骤1.定义一个GestureDetectorCompat的实例2.重写方法,实现自定义效果①想让检测器消费一系列的触摸事件,那么就要在重写方法`onDown`中去返回true,那么后续的一系列触摸过程才能让手势检测器获取②既然我们要去实现双击效果,那么就得再给手势检测器设置一个监听③实现双击变大变小④重写onDoubleTap④实现惯性滑动总结完整代码前言在view中我们可以重写onTouchEvent来自定义点击事件,但是M原创 2021-10-04 15:52:29 · 1282 阅读 · 0 评论 -
MaterialEditText 标签浮动 自定义view
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言做两个动画,监听文本变化,有文本时从下往上飘出一个标签,内容和`EditText`的`hint`内容一致。没有文本(开始时,或者文本删除干净时)标签从上往下逐渐隐藏。二、实现步骤1.创建类MaterialEditText去继承EditText2.创建一些基本变量3.设置文本监听4.写文字5.XML中控制标签动画的开关①自定义属性②使用MaterialEditText时去设置该属性②在MaterialEditText.class原创 2021-09-30 15:44:49 · 251 阅读 · 0 评论 -
java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.view
项目场景:在我实现自定义流式布局时,我使用了measureChildWithMargins对问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes, -原创 2021-09-30 12:22:06 · 1224 阅读 · 0 评论 -
自定义流式布局--kotlin实现
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、使用原因1.流式布局中放了许多小的view,要求我们把这些子view妥善的摆放在一个viewgroup中,如果我们在xmL中去实现这个效果,这就要求我们去对每个子view设置margin,padding,还有位置属性。这可能需要花很多时间去摆放,去设置。2.如果我们做一个搜索内容的历史记录,那么我们事先是不知道子view的条目和具体内容的,所以我们也没法在XML中去书写,那么我们就需要一个viewgroup去对数据进行操作,原创 2021-09-30 11:30:05 · 1340 阅读 · 0 评论 -
Android 安卓自定义流式布局
文章目录前言一、如何实现?二、使用步骤1.重写onMeasure方法2.重写onLayout三、项目代码总结前言最近接触了自定义ViewGroup,准备写一个自定义流式布局练练手,流式布局广泛应用于安卓开发中,许多APP的历史记录就应用了这一模式一、如何实现?需要去继承ViewGroup,重写ViewGroup的方法二、使用步骤1.重写onMeasure方法代码如下: /** * 测量控件本身的大小 宽和高 根据子内容获取 * * @pa.原创 2021-07-21 16:52:42 · 304 阅读 · 1 评论