View的基本位置参数介绍
来源:互联网 发布:网络直播名人排名 编辑:程序博客网 时间:2024/05/16 09:23
学习安卓有一年多了,越来越发现自己所学的都东西不足了。以前用的的自定义View都是从网上直接搜索别人的Demo,现在想想应该自己学习着自己写自定义view了。而学习自定义view的话首先需要了解view的基本信息,所以我就从view开始,今天首先学习一下view的位置参数。
1、安卓中view的位置坐标一般都是以相对位置来说的,一般都是相对于view的父控件。我们可以通过view的方法来获取view在父控件中的位置。
//获得view在父控件中的相对位置 mLeft = view.getLeft(); mTop = view.getTop(); mRight = view.getRight(); mBottom = view.getBottom();
先看效果图:
然后再看代码:
main.java
package com.hunanbing.mycustomerview;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class MainActivity extends Activity implements View.OnClickListener { private Button btn1, btn2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button) findViewById(R.id.button1); btn2 = (Button) findViewById(R.id.button2); btn1.setOnClickListener(this); btn2.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.button1: btn1.setText(btn1.getLeft() + "," + btn1.getTop() + ";" + btn1.getRight() + "," + btn1.getBottom()); break; case R.id.button2: btn2.setText(btn2.getLeft() + "," + btn2.getTop() + ";" + btn2.getRight() + "," + btn2.getBottom()); break; } }}
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.hunanbing.mycustomerview.MainActivity"> <Button android:id="@+id/button1" android:layout_width="200dp" android:layout_height="wrap_content"/> <Button android:id="@+id/button2" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_marginLeft="100dp" android:layout_marginTop="100dp"/></RelativeLayout>
代码很简单,就是有两个button,分别为btn1和btn2,可以通过以上4个方法来获取view在父控件中的坐标。
同时,我们也可以通过这几个方法来获取view控件的宽和高:
wigth = view.getRight()-view.getLeft();height = view.getBottom()-view.getTop();
Android3.0以后,view又添加了几个参数X,Y,translationX,translationY。这几个参数的意思指的是当view做完移动操作以后的位置数据,这几个参数也是相对于父控件来说的。
X是view偏移后的x坐标,translationX是view的偏移量。
它们的关系是:
view.getX() = view.getLeft() + view.getTranslationX();view.getY() = view.getTop() + view.getTranslationY();
0 0
- View的基本位置参数介绍
- View的位置参数
- view的位置参数:
- View 的位置参数
- View的位置参数
- View的位置参数
- View 的位置参数
- View的位置参数
- View的位置参数简介
- Android View的位置参数
- [Android]:View的位置参数
- Android View的位置参数
- view的基本介绍
- view的位置参数理解
- View的位置参数及触摸事件
- View位置参数
- View位置参数
- View的事件体系——View的位置参数
- Android 签名混淆-多渠道打包
- 二叉树操作总结
- C++ explicit关键字详解
- 自学第二遍堆抽象类的理解:
- Spring集成Camel
- View的基本位置参数介绍
- 近期有点忙
- common note
- mongodb基本操作
- Angular2、Ionic、TypeScript、es6的关系?
- https协议详解
- Nginx rewrite(重读)
- 有限马尔可夫决策过程(Finite Markov Decision Processes)
- 面向对象