getX和getRawX、getY和getRawY?

getX、getY:x,y是相对于控件本身左上点的相对位置;
getRawX、getRawY:rawx,rawy是相对于屏幕左上角的位置。

在Android开发中,ExoPlayer是Google官方推荐的视频播放库,它支持广泛的视频格式和功能,包括视频的缩放和移动。如果您需要在一个`Box`容器内实现视频的缩放和移动,您可能需要使用`SimpleExoPlayerView`,`TextureView`或者`SurfaceView`等组件来显示视频。以下是一些实现视频缩放和移动的基本步骤: 1. 使用`SimpleExoPlayerView`:您可以在布局文件中使用`SimpleExoPlayerView`来嵌入视频。这个View内部使用的是`TextureView`,它支持视频的缩放和移动。 2. 布局调整:为了使`SimpleExoPlayerView`能够缩放和移动,您需要确保它的父布局允许子视图的移动和缩放。例如,使用`RelativeLayout`或`ConstraintLayout`作为父布局,并设置`SimpleExoPlayerView`的属性,如`layout_alignParentTop`、`layout_alignParentStart`等,来指定视频视图的位置。 3. 控制缩放和移动:您可以在您的Activity或Fragment中,通过编程的方式来控制`SimpleExoPlayerView`的移动和缩放。例如,您可以监听触摸事件来改变`SimpleExoPlayerView`的`translationX`和`translationY`属性来移动视频,以及修改其`scaleX`和`scaleY`属性来实现缩放效果。 4. 动画效果:为了实现更平滑的用户体验,可以使用Android的动画API来创建移动和缩放的动画效果。 5. 保持视频内容在屏幕内:确保在缩放和移动视频时,视频内容始终可见,没有被裁剪掉,特别是在屏幕边缘。 示例代码片段(实现简单的触摸事件监听来移动视图): ```java SimpleExoPlayerView playerView = findViewById(R.id.exo_player_view); playerView.setOnTouchListener(new View.OnTouchListener() { private float initialX; private float initialY; private float initialTouchX; private float initialTouchY; @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: initialX = v.getX(); initialY = v.getY(); initialTouchX = event.getRawX(); initialTouchY = event.getRawY(); return true; case MotionEvent.ACTION_MOVE: v.setX(initialX + (event.getRawX() - initialTouchX)); v.setY(initialY + (event.getRawY() - initialTouchY)); return true; } return false; } }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值