保持饥饿,保持愚蠢,我们对待事情本来应该就是这样的

接下来我要写一个水平滑动的自写义,实现效果

水平滑动我们有很多种实现方法,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 自定义属性的更多相关文章

  1. 修复垂直滑动RecyclerView嵌套水平滑动RecyclerView水平滑动不灵敏问题

    在 Android 应用中,大部分情况下都会使用一个垂直滚动的 View 来显示内容(比如 ListView.RecyclerView 等).但是有时候你还希望垂直滚动的View 里面的内容可以水平滚 ...

  2. Android自定义View自定义属性

    1.引言 对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现: 自定义一个CustomView(extends View )类 编写values/attrs.xml,在其中编写styleabl ...

  3. Android初级教程初谈自定义view自定义属性

    有些时候,自己要在布局文件中重复书写大量的代码来定义一个布局.这是最基本的使用,当然要掌握:但是有些场景都去对应的布局里面写对应的属性,就显得很无力.会发现,系统自带的控件无法满足我们的要求,这个时候 ...

  4. ListVIew中包含水平滑动控件,左右滑动时容易触发上下滑动

    自定义ListView import android.content.Context;import android.util.AttributeSet;import android.view.Moti ...

  5. DevExpress Carousel 设置水平滑动列表

    DevExpress中Carousel控件的应用 Carousel,直译为旋转木马,即旋转视图,可以做为数据的展示或者菜单项. 要实现触摸左右滑动的效果,其实是比较容易的,直接在CarouselPan ...

  6. flipsnap--手机屏幕水平滑动框架

    在很多手机应用中,大家都会见过这样一种效果:当手指横向滑动屏幕时,屏幕上的页面会向左或向右滑动. 下面介绍一下当用HTML5+CSS3开发手机应用时解决这类效果的一款js框架:flipsnap. fl ...

  7. -_-#【Backbone】View

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. android 开发 View _14 MotionEvent和事件处理详解,与实践自定义滑动条View

    转载https://blog.csdn.net/huaxun66/article/details/52352469 MotionEvent MotionEvent对象是与用户触摸相关的时间序列,该序列 ...

  9. WPF自定义控件之列表滑动特效 PowerListBox

    列表控件是应用程序中常见的控件之一,对其做一些绚丽的视觉特效,可以让软件增色不少. 本人网上看过一个视频,是windows phone 7系统上的一个App的列表滚动效果,效果非常炫 现在在WPF上用 ...

随机推荐

  1. EMQ ---客户端clientid为空,emq会随机帮忙生成

    mqtt v3.1.1协议有规定clientid可以为空,所以当客户端clientid为空,emq会随机帮忙生成. 如果clientid为空,随机生成clientid.例如'emqttd_105789 ...

  2. 调整弹出对话框在ASP.NET应用程序的大小

    调整弹出对话框在ASP.NET应用程序的大小 #region 调整弹出对话框在ASP.NET应用程序的大小    protected void PopupWindowControl_Customize ...

  3. STL六大组件简介

    一.STL简介 (一).泛型程序设计 泛型编程(generic programming) 将程序写得尽可能通用 将算法从数据结构中抽象出来,成为通用的 C++的模板为泛型程序设计奠定了关键的基础 (二 ...

  4. 三维模型 DAE 导出格式结合 OpenGLES 要素浅析

    三维模型 DAE 导出格式结合 OpenGLES 要素浅析 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&quo ...

  5. stm32 堆和栈(stm32 Heap & Stack)

    关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的. 那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘: 刚接手STM32时,你只编写一个 int main() { whil ...

  6. CentOS 6.4 yum安装chrome

    CentOS 6.4安装chrome浏览器 vim /etc/yum.repos.d/CentOS-Base.repo 根据你的系统增加一个节点 32-bit [google] name=Google ...

  7. Android Study 之 初识ButterKnife(8.5.1)及简单运用

    LZ-Says:突然间不知道说什么好,祝大家编码无bug吧~ 前言 话说,Android开发的兄弟们都知道,每次初始化控件,设置对应的事件.写的那点过程多并且恶心.我们先一块回想下不堪的以前~ 那些年 ...

  8. 逆向project第005篇:跨越CM4验证机制的鸿沟(下)

    一.前言 本文是逆向分析CM4系列的最后一篇,我会将该游戏的序列号验证机制分析完成,进而编写出注冊码生成器. 二.分析第二个验证循环 延续上一篇文章的内容,来到例如以下代码处: 图1 上述代码并没有特 ...

  9. SCUT入门-环境搭建

    SCUT是一款基于C#且开源的游戏服务端框架,并且有一定的上线项目.最近正在入门中... 1.安装 去官网可以直接下载安装版:http://www.scutgame.com/ 源代码建议OSC Chi ...

  10. Objective-C的内存管理(一)黄金法则的理解

    转自:http://blog.csdn.net/lonelyroamer/article/details/7666851 一.内存管理黄金法则: The basic rule to apple is ...