自定义控件_水平滑动的View 自定义属性
保持饥饿,保持愚蠢,我们对待事情本来应该就是这样的
接下来我要写一个水平滑动的自写义,实现效果

水平滑动我们有很多种实现方法,recyceryView,HorizontalScrollView都可以,在做过的项目中基本都会用到, 我会把它例出来,一一归位,学习本应该如此,总结,总结,总结!!!
1.自定义首先要extend一个View,实现里面的四个方法,当然第四个一般不会用到
写构造方法的时候要是有要求的
1.this(context,null);
this(context, attrs,0);
super(context, attrs, defStyleAttr);
2.直接在每个构造方法里调用 (切记!!!)
2.调用HintTypedArray.obtainStyleAttributs()来设置一系列的属性
文字大小,排列数量等等
注意这里 写的时候要加上上一个节点的名字,用_作连接符。Android中把控件都是这样,有调理性 在这里又踩坑了,!!!
TintTypedArray tintType = TintTypedArray.obtainStyledAttributes(getContext(), attrs, R.styleable.HorizontalSelectedView);
R.Styleable中的文件必须和自定义的类名是一样的,这样保证下面正确的用到 (注意)
attrs.xml中
<resources>
<declare-styleable name="HorizontalselectedView">
<attr name="HorizontalselectedViewSeesize" format="integer"></attr>
//在代码中用这样的方式得到 R.styleable.HorizontalselectedView_HorizontalselectedViewSeesize
在属性中经常会遇到画笔这个属性,paint,Textpaint
3.在onDraw()方法中开始画控件的大小了
1.首先考虑件的宽高 getWith();getHeight()
2.拿到整个数据用画笔画出来
在onDraw()方法中MotionEvent过后 invalidate();//重新绘制
4.onMeasure()中
1.在这个方法中我们必须用的是MeasureSpace这个类中的方法
EXACTLY:一般是设置了明确的值或者是MATCH_PARENT
AT_MOST:表示子布局限制在一个最大值内,一般为WARP_CONTENT
UNSPECIFIED:表示子布局想要多大就多大,很少使用
自定义控件_水平滑动的View 自定义属性的更多相关文章
- 修复垂直滑动RecyclerView嵌套水平滑动RecyclerView水平滑动不灵敏问题
在 Android 应用中,大部分情况下都会使用一个垂直滚动的 View 来显示内容(比如 ListView.RecyclerView 等).但是有时候你还希望垂直滚动的View 里面的内容可以水平滚 ...
- Android自定义View自定义属性
1.引言 对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现: 自定义一个CustomView(extends View )类 编写values/attrs.xml,在其中编写styleabl ...
- Android初级教程初谈自定义view自定义属性
有些时候,自己要在布局文件中重复书写大量的代码来定义一个布局.这是最基本的使用,当然要掌握:但是有些场景都去对应的布局里面写对应的属性,就显得很无力.会发现,系统自带的控件无法满足我们的要求,这个时候 ...
- ListVIew中包含水平滑动控件,左右滑动时容易触发上下滑动
自定义ListView import android.content.Context;import android.util.AttributeSet;import android.view.Moti ...
- DevExpress Carousel 设置水平滑动列表
DevExpress中Carousel控件的应用 Carousel,直译为旋转木马,即旋转视图,可以做为数据的展示或者菜单项. 要实现触摸左右滑动的效果,其实是比较容易的,直接在CarouselPan ...
- flipsnap--手机屏幕水平滑动框架
在很多手机应用中,大家都会见过这样一种效果:当手指横向滑动屏幕时,屏幕上的页面会向左或向右滑动. 下面介绍一下当用HTML5+CSS3开发手机应用时解决这类效果的一款js框架:flipsnap. fl ...
- -_-#【Backbone】View
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- android 开发 View _14 MotionEvent和事件处理详解,与实践自定义滑动条View
转载https://blog.csdn.net/huaxun66/article/details/52352469 MotionEvent MotionEvent对象是与用户触摸相关的时间序列,该序列 ...
- WPF自定义控件之列表滑动特效 PowerListBox
列表控件是应用程序中常见的控件之一,对其做一些绚丽的视觉特效,可以让软件增色不少. 本人网上看过一个视频,是windows phone 7系统上的一个App的列表滚动效果,效果非常炫 现在在WPF上用 ...
随机推荐
- 【LeetCode】97. Interleaving String
Interleaving String Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. Fo ...
- Centos 开启telnet-service服务
1. 查看linux版本信息: [loong@localhost ~]$ cat /etc/issue CentOS release 5.8 (Final) Kernel \r on an \m 2. ...
- C#指南,重温基础,展望远方!(8)C#数组
数组是一种数据结构,其中包含许多通过计算索引访问的变量. 数组中的变量(亦称为数组的元素)均为同一种类型,我们将这种类型称为数组的元素类型. 数组类型是引用类型,声明数组变量只是为引用数组实例预留空间 ...
- HDU 5186 zhx's submissions (进制转换)
Problem Description As one of the most powerful brushes, zhx submits a lot of code on many oj and mo ...
- unity, SkinnedMeshRenderer.bones[i]不能直接赋值
SkinnedMeshRenderer.bones[i]=xxx,这样写不报错,但也不起作用. 正确的方法是: List<Transform> boneList=new List<T ...
- 如何隐藏你的 Linux 的命令行历史
如果你是 Linux 命令行的用户,有的时候你可能不希望某些命令记录在你的命令行历史中.原因可能很多,例如,你在公司担任某个职位,你有一些不希望被其它人滥用的特权.亦或者有些特别重要的命令,你不希望在 ...
- Ubuntu14.04.3 64位环境下openjdk7编译
系统环境:Ubuntu14.04.3 -amd64 in VMWare1.安装openjdk7依赖 sudo apt- sudo apt--jdk sudo apt-get install build ...
- jquery 获取各种高宽
获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 : $(window).width(); 获取页面的文档高度 $ ...
- 第八课:不一样的链表 linux链表设计哲学 5星级教程
这一课最后实现的链表,和普通链表不同,借鉴了linux内核链表的思想,这也是企业使用的链表. 基础介绍: 顺序表的思考 顺序表的最大问题是插入和删除需要移动大量的元素!如何解决?A:在线性表数据元素之 ...
- oracle时间操作结合to_char和to_date使用
1,按每个10分钟进行分组展示数据 例如 有这么一张表 XATXDAY_FLIGHT(航班飞航表), 有这么一个字段 STD_LOCAL(起飞时间), 要求:统计一天24小时之内每隔10分钟,这10分 ...