android 开发 View _1_ View的子类们 和 视图坐标系图
目录:
android 开发 View _2_ View的属性动画ObjectAnimator ,动画效果一览
android 开发 View _3_ View的属性动画ValueAnimator
android 开发 View _4_ 我的简单自定义ViewDemo
android 开发 View _8_ 动态图片自定义View
android 开发 View _10_ Path之基本操作
android 开发 View _12_ 用Canvas 绘制一张图片(博客中演示用Canvas画验证码图片)
android 开发 View _13 绘制图片与BitmapShader位图的图像渲染器
android 开发 View _14 自定义View的滑动
android 开发 View _15 导入一张图片将它裁剪成圆形
android 开发 View _16 自定义计步器View、自定义柱状图View
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的子类们 和 视图坐标系图的更多相关文章
- Android开发进阶——自定义View的使用及其原理探索
在Android开发中,系统提供给我们的UI控件是有限的,当我们需要使用一些特殊的控件的时候,只靠系统提供的控件,可能无法达到我们想要的效果,这时,就需要我们自定义一些控件,来完成我们想要的效果了.下 ...
- Android 自定义View修炼-Android开发之自定义View开发及实例详解
在开发Android应用的过程中,难免需要自定义View,其实自定义View不难,只要了解原理,实现起来就没有那么难. 其主要原理就是继承View,重写构造方法.onDraw,(onMeasure)等 ...
- 深入Android开发之--理解View#onTouchEvent
一:前言 View是Android中最基本的UI单元. 当一个View接收到了触碰事件时,会调用其onTouchEvent方法.方法声明如下: ? 1 2 3 4 5 6 7 /** * Imple ...
- Android 开发中的View事件监听机制
在开发过程中,我们常常根据实际的需要绘制自己的应用组件,那么定制自己的监听事件,及相应的处理方法是必要的.我们都知道Android中,事件的监听是基于回调机制的,比如常用的OnClick事件,你了解它 ...
- android开发_view和view属性
一.view视图的宽度和高度属性,属性值:固定和浮动两种状态 1属性为固定值 <View android:layout_width="30dp" android:layout ...
- Android 开发 -------- 自己定义View 画 五子棋
自己定义View 实现 五子棋 配图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZV9KYXZjX3lvdQ==/font/5a6L5L2T ...
- android开发学习 ------- 自定义View 圆 ,其点击事件 及 确定当前view的层级关系
我需要实现下面的效果: 参考文章:https://blog.csdn.net/halaoda/article/details/78177069 涉及的View事件分发机制 https://www. ...
- android开发之自定义View 详解 资料整理 小冰原创整理,原创作品。
2019独角兽企业重金招聘Python工程师标准>>> /** * 作者:David Zheng on 2015/11/7 15:38 * * 网站:http://www.93sec ...
- DDMS android 开发工具-----dump View Hierarchy for UI automator
今天又发现一个好工具 dump View Hierarchy 对学习UI布局非常有优点,操作也非常easy的.直接上图说话了 watermark/2/text/aHR0cDovL2Jsb2cuY3N ...
随机推荐
- VSTO:使用C#开发Excel、Word【16】
使用工作表对象Worksheet对象表示Excel工作簿中的工作表.Worksheet有一个Name属性,返回工作表的名称(例如“Sheet1”). 工作表管理Worksheet对象具有一个Index ...
- 使用Python爬取代理ip
本文主要代码用于有代理网站http://www.kuaidaili.com/free/intr中的代理ip爬取,爬虫使用过程中需要输入含有代理ip的网页链接. 测试ip是否可以用 import tel ...
- 用记事本编写helloworld文件但是javac时报错
刚开始编写第一个java文件时遇到的错误: javac HelloWorld.java HelloWorld.java:1: 错误: 写入HelloWorld时出错: HelloWorld.class ...
- SVN创建分支/合并分支/切换分支
在建立项目版本库时,可首先建好项目文件夹,并在其中建立trunk, branches, tags三个空的子目录.这样在trunk中开始进行开发 trunk是主分支,是日常开发进行的地方. branch ...
- 9--Python入门--模块
模块简单来说是一个保存了python代码的文件很多python开源库就是模块 #例如我们调用科学计算库 numpy import numpy as np #as np是为了之后方便调用 from pa ...
- 利用教育邮箱注册JetBrains产品(pycharm、idea等)的方法
转载:http://www.cnblogs.com/wang-meng/p/8887436.html 1,申请邮箱 地址为:http://mdu.edu.rs/ 邮箱的前缀可以改成自己喜欢的字符 ...
- phpcms 加载微信类库,生成签名
在phpcms 中 pc_base:load_config(文件名) 用于加载配置文件,配置文件存放于phpcms目录下的caches/configs中 在控制器新增加载微信类库的方法: /** * ...
- 基于python的发送邮件案例
#coding:utf-8 #强制使用utf-8编码格式 import smtplib #加载smtplib模块 from email.mime.text import MIMEText from e ...
- 14.python-CS编程
一.客户端/服务器架构1.C/S架构:(1)硬件C/S架构(打印机)(2)软件C/S架构(web服务)2.生活中的C/S架构:饭店是S端,所有食客是C端3.C/S架构与socket的关系:socke就 ...
- for break
public static void main(String[] args) { aaa: for (int j = 0; j < 2; j++) { System.out.println(&q ...