view-基本属性

来源:互联网 发布:编程教学的app 编辑:程序博客网 时间:2024/06/05 23:45

view的几个基本属性的介绍
1.什么是view
个人认为view简单说就是所有view的基类所有的界面view归根到底就是view衍生来的。
2.view的位置参数
大家可以先参考下下面的图形介绍
view结构介绍

根据此图我们获取控件的位置属性可以调用如下方法

Left=getLeft();Right=getRight();Top=getTop();Bottom=getBottom();

我们给据介绍可以获取控件的宽高

width=Right-Leftheight=Bottom-Top

我们如果获取控件的坐标该如何处理呢 看下面

x=getX();y=getY();

这样我们就获取了控件的x,y的坐标,那么问题来了我们现在看x跟Left,y跟Top在图片上显示结果是一样的那他俩的区别又是什么?
请看下面图片的介绍
view位置介绍

左面的图片是我们上面介绍的结果也就是getLeft() = getX()假如我们使用属性动画将图片右移,会出现什么结果请看下面的代码

        ImageView imageView= (ImageView) findViewById(R.id.iv_main);        Log.e("位置   x",imageView.getX()+"");        Log.e("位置   left",imageView.getLeft()+"");        Log.e("位置   translate x",imageView.getTranslationX()+"");        imageView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                ImageView imageView= (ImageView) findViewById(R.id.iv_main);                Log.e("位置   x",imageView.getX()+"");                Log.e("位置   left",imageView.getLeft()+"");                Log.e("位置   translate x",imageView.getTranslationX()+"");                ObjectAnimator.ofFloat(imageView,"translationX",-300f).setDuration(1000).start();            }        });

我们来看打印日志

初始化时的打印日志02-22 10:36:51.578 12405-12405/com.aaa E/位置   x: 0.002-22 10:36:51.578 12405-12405/com.aaa E/位置   left: 002-22 10:36:51.578 12405-12405/com.aaa E/位置   translate x: 0.0点击一次后的打印日志02-22 11:09:07.429 12405-12405/com.aaa E/位置   x: 258.002-22 11:09:07.429 12405-12405/com.aaa E/位置   left: 25802-22 11:09:07.429 12405-12405/com.aaa E/位置   translate x: 0.0再次点击后的打印日志02-22 11:09:53.348 12405-12405/com.aaa E/位置   x: -42.002-22 11:09:53.348 12405-12405/com.aaa E/位置   left: 25802-22 11:09:53.348 12405-12405/com.aaa E/位置   translate x: -300.0

在结果中我们发现2点
1.布局初始化的时候我们的控件位置是获取不到的
2.我们的left属性不会随着属性动画的改变而改变
3.最重要的 x = left + translatex
即 view.getX相当于该view距离父容器左边缘的距离,等于getLeft+getTranslationX。

在下一篇中我们会介绍view的事件分发机制来帮助我们更好的了解view。

0 0