view-基本属性

本文详细介绍了Android中View的位置属性,包括如何获取View的左、右、顶、底边位置及宽度和高度,并深入探讨了getX(), getLeft(), 和getTranslationX()之间的区别,通过实例演示了这些属性在属性动画中的变化。
摘要由CSDN通过智能技术生成

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

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

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

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

width=Right-Left
height=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.0
02-22 10:36:51.578 12405-12405/com.aaa E/位置   left: 0
02-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.0
02-22 11:09:07.429 12405-12405/com.aaa E/位置   left: 258
02-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.0
02-22 11:09:53.348 12405-12405/com.aaa E/位置   left: 258
02-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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值