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;        }    }}


main.xml

<?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
原创粉丝点击