目录:

android 开发 View _2_ View的属性动画ObjectAnimator ,动画效果一览

android 开发 View _3_ View的属性动画ValueAnimator

android 开发 View _4_ 我的简单自定义ViewDemo

android 开发 View _5_ Paint详解

android 开发 View _6_Canvas详解

android 开发 View _7_ 动态自定义View

android 开发 View _8_ 动态图片自定义View

android 开发 View _9_ 实现渐变功能

android 开发 View _10_ Path之基本操作

android 开发 View _11_ xml动画

android 开发 View _12_ 用Canvas 绘制一张图片(博客中演示用Canvas画验证码图片)

android 开发 View _13 绘制图片与BitmapShader位图的图像渲染器

android 开发 View _14 自定义View的滑动

android 开发 View _15 导入一张图片将它裁剪成圆形

android 开发 View _16 自定义计步器View、自定义柱状图View

配套 :Android 开发 系统组件集合

View的方法:

除了以上图片的方法,view还有其他方法,我们详解一下。后续帮助自定义view有些用处。图片里的get方法就不解释了,清晰明了。

getWidth与getHeight:

得到目标view的宽度与高度,当然如果非要骚气的玩,你也可以getRight - getLeft = getWidth。(我才不会告诉你,其实view的api里其实就是这么写的)

getScrollX与getScrollY:

可以把getScrollx的值看成坐标。比如view向右边移动20px。那么得到的值就是view.getScrollx()的值就是-20。

为什么会获取-20?而不是20?很简单,这里移动的并不是view本身而是显示view的镜头。镜头向左移动-20等于view向右移动了20。

假设getScrollX原始值为0,如果内容view移向左边,getScrollX为正,向右为负。

同理getScrollY,内容view向上移动,因为镜头向下移动了,所以getScrollY值为正,如果view向下移动,那么值就是负数。

layout(int l, int t, int r, int b):

移动目标View布局位置,参数含义是,view的四个边的坐标值:

int l = 左边的边

int t = 上面的边

int r = 右边的边

int b=下面的边

有点混乱?我们打个比方,假设我们想让这个view向右边移动20px。我们就需要这么输入参数:

view.layout(

getLeft()+20, //view左边的边增加20

getTop(),

getRight()+20,//view右边的边增加20

getBottom());

你可以参考上面的图片来理解一下这个逻辑,注意这个时候移动的不是镜头了,这个方法移动的是view本身,其实就是改变view的整体坐标。

android 开发 View _1_ View的子类们 和 视图坐标系图的更多相关文章

  1. Android开发进阶——自定义View的使用及其原理探索

    在Android开发中,系统提供给我们的UI控件是有限的,当我们需要使用一些特殊的控件的时候,只靠系统提供的控件,可能无法达到我们想要的效果,这时,就需要我们自定义一些控件,来完成我们想要的效果了.下 ...

  2. Android 自定义View修炼-Android开发之自定义View开发及实例详解

    在开发Android应用的过程中,难免需要自定义View,其实自定义View不难,只要了解原理,实现起来就没有那么难. 其主要原理就是继承View,重写构造方法.onDraw,(onMeasure)等 ...

  3. 深入Android开发之--理解View#onTouchEvent

    一:前言 View是Android中最基本的UI单元. 当一个View接收到了触碰事件时,会调用其onTouchEvent方法.方法声明如下: ? 1 2 3 4 5 6 7 /**  * Imple ...

  4. Android 开发中的View事件监听机制

    在开发过程中,我们常常根据实际的需要绘制自己的应用组件,那么定制自己的监听事件,及相应的处理方法是必要的.我们都知道Android中,事件的监听是基于回调机制的,比如常用的OnClick事件,你了解它 ...

  5. android开发_view和view属性

    一.view视图的宽度和高度属性,属性值:固定和浮动两种状态 1属性为固定值 <View android:layout_width="30dp" android:layout ...

  6. Android 开发 -------- 自己定义View 画 五子棋

    自己定义View  实现 五子棋 配图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZV9KYXZjX3lvdQ==/font/5a6L5L2T ...

  7. android开发学习 ------- 自定义View 圆 ,其点击事件 及 确定当前view的层级关系

    我需要实现下面的效果:   参考文章:https://blog.csdn.net/halaoda/article/details/78177069 涉及的View事件分发机制 https://www. ...

  8. android开发之自定义View 详解 资料整理 小冰原创整理,原创作品。

    2019独角兽企业重金招聘Python工程师标准>>> /** * 作者:David Zheng on 2015/11/7 15:38 * * 网站:http://www.93sec ...

  9. DDMS android 开发工具-----dump View Hierarchy for UI automator

    今天又发现一个好工具  dump View Hierarchy 对学习UI布局非常有优点,操作也非常easy的.直接上图说话了 watermark/2/text/aHR0cDovL2Jsb2cuY3N ...

随机推荐

  1. LeetCode 199 二叉树的右视图

    题目: 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例: 输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释: 1 ...

  2. java service 安装

    sudo ln -s /var/services/video/video-live.jar /etc/init.d/live-service sudo chmod +x /var/services/v ...

  3. Java 内存模型简单剖析

    Java 内存模型试图屏蔽各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致的内存访问效果. 主内存与工作内存 处理器上的寄存器的读写的速度比内存快几个数量级,为了解决 ...

  4. echarts.init 使用jq获取初始化对象

    var myChart = echarts.init($('#main')[0]);// 或者var myChart = echarts.init($('#main').get(0));

  5. 团队项目(MVP------新能源无线充电管理网站)(个人任务3)

    现在我们组的项目已经完成了,之前做的欢迎界面已经废弃掉了,于是我重新制作了一个欢迎界面,主要是分为了团队介绍,充电商品的介绍,现在充电新闻的发展,解决方案,成功案例.其中产品里面又有两个商品的售卖页, ...

  6. C++11 类型后置语法

    #include <iostream> #include <typeinfo> #include <type_traits> using namespace std ...

  7. 测试那些事儿—postman进阶使用与实战

    1.postman进阶使用 1)环境与变量: 备注:全局 和 局部 变量不会影响到变量的调用,区别在于局部变量对于非当前环境不能使用而已. a.当测试存在多个环境时,可以先设置一个环境,然后在此环境下 ...

  8. 2018.4.25 github创建新项目

    echo "# IntegrateDemo" >> README.md git init git add README.md git commit -m "f ...

  9. Android SDK的下载与安装

    一.Android SDK简介 Android SDK(Software Development Kit,软件开发工具包)被软件开发工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件 ...

  10. ios-项目启动页面

    项目运行启动页面: 点工程项目targets-(或Images.xcasets)-LaunchImage(iphone四种规格图片:320*480/350*568/640*960/640*1136)将 ...