安卓ImageView镜像翻转

如何实现安卓ImageView镜像翻转,网上搜了一通,100%的是通过自己用代码来操作bitmap,把bitmap镜像翻转一下,然后再设置给ImageView。 那么如果 ImageView 内放的是 gif、动态webp、svga 等复杂图像,这时又该如何处理?难道要把这些复杂图像的每一帧自己解析一遍?

解决方法:
android:scaleX = -1 可用来 水平镜像翻转
android:scaleY = -1 可用来 垂直镜像翻转

x轴往0缩小时表示是将图片缩小,当缩小到小于0后继续向负数缩小时,自然是朝相反方向放大了。

奇技淫巧值得收藏。如果对您有用,不妨点个赞。

  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
要在Android中实现将ImageView旋转180度后水平翻转的效果,你可以使用属性动画和Matrix来实现。以下是一种实现方法: 1. 首先,在你的布局文件中添加一个ImageView来显示你的图片: ```xml <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/your_image" /> ``` 2. 在你的Activity或Fragment中,获取ImageView的引用并创建属性动画: ```java ImageView imageView = findViewById(R.id.imageView); ObjectAnimator rotateAnimator = ObjectAnimator.ofFloat(imageView, "rotation", 0f, 180f); ``` 3. 创建一个Matrix对象,并将其应用到ImageView的变换矩阵中: ```java Matrix matrix = new Matrix(); imageView.setScaleType(ImageView.ScaleType.MATRIX); imageView.setImageMatrix(matrix); ``` 4. 在动画开始前设置一个持续时间和重复模式: ```java rotateAnimator.setDuration(1000); // 设置动画持续时间,单位为毫秒 rotateAnimator.setRepeatCount(0); // 设置动画重复次数,0表示不重复 ``` 5. 在动画结束后,通过Matrix进行水平翻转: ```java rotateAnimator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); matrix.preScale(-1f, 1f, imageView.getWidth() / 2f, imageView.getHeight() / 2f); imageView.setImageMatrix(matrix); } }); rotateAnimator.start(); // 启动动画 ``` 这样,ImageView在旋转180度后将会水平翻转。你可以根据需要调整动画的持续时间和重复模式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值