android 自定义控件位置,Android API指南(二)自定义控件04之 位置说明

1. android:padding和android:layout_margin

android:layout_margin:指该控件距离边父控件的边距。 android:layout_marginLeft:指该控件的左边缘距离边父控件的边距。

android:padding:指该控件内容距离控件边缘的距离;例如,TextView中的文本距离TextView自身的边距。 android:paddingLeft:指该控件内容的左边缘距离控件的距离;例如,TextView中的文本的左边缘距离TextView自身的边距。

示例

android:layout_width="100dip"

android:layout_height="100dip"

android:padding="10dip"

android:layout_margin="20dip"

/>

说明:MyView是一个自定义视图。 (01) android:padding="10dip",意味着它的内容距离MyView视图本身的上下左右边距都是10dip。 (02) android:layout_margin="20dip",意味着MyView距离"它的父容器"的上下左右边距都是20dip。

2. View的相关位置

View的位置涉及到TransformationInfo。TransformationInfo记录的是在View发生"缩放/旋转"等变化时的大小,如果没有发生"缩放/旋转",则TransformationInfo记录的位置信息都是0。

关于水平方向的位置: getPaddingLeft():指该控件内容的左边缘距离控件自身的距离。  getLeft(): 该View相对于"父view"的x坐标。 getX():TransformationInfo.mTranslationX + getLeft()的值。

同理, getPaddingLeft():指该控件内容的上边缘距离控件自身的距离。  getTop(): 该View相对于"父view"的y坐标。 getY():TransformationInfo.mTranslationY + getTop()的值。

3. MotionEvent点击事件的相关位置

getX(): 触摸点相对于"监听该点击事件的控件"的x坐标。 getRawX():触摸点相对于屏幕的x坐标。

同理, getY(): 触摸点相对于"监听该点击事件的控件"的y坐标。

getRawY():触摸点相对于屏幕的y坐标。

//----------------------------------------分割---------------------------------------

TranslateAnimation ta = new TranslateAnimation(0f, 100f, 0, 0);

ta.setDuration(10000);

ta.setFillAfter(true);

imageview.setTranslationX(10);

imageview.startAnimation(ta); View的setTransLationX()方法,设置偏移量,相当于可以看到图片从0直接到10这个位置,动画从10开始执行的。当第二次执行的时候,直接从10这个位置执行动画。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值