在 ImageView 中翻转和更改图像

2024-01-02

我正在开发一个工作简单且工作效率很高的应用程序。但我有一个地方看起来不太好,那就是翻转动画。

我想要的是 :

我有一个 Button 和按钮下方的 ImageView。单击按钮时,我想制作一个动画,看起来 ImageView 已翻转,并且下一个图像显示在 ImageView 中。因此,每次单击时,它都应该显示下一张带有翻转动画的图像,但存在一些问题。我稍后会讨论,但首先让我向您展示我是如何做到这一点的。

到目前为止我所做的:

翻转.xml

<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
    android:valueFrom="0" android:valueTo="180" android:propertyName="rotationY" >
</objectAnimator>

在活动中

@Override
public void onClick(View v) {
     flipAnimation();
     ivAnimPicture.setImageResource(myImage1);      
}

private void flipAnimation(){
    ObjectAnimator anim = (ObjectAnimator) AnimatorInflater.loadAnimator(this, R.animator.flipping);
    anim.setTarget(ivAnimPicture);
    anim.setDuration(1500);
    anim.start();
}

Problem

当它从 0 旋转到 180 时,当它恰好达到 90 度时,我们可以看到图像视图边缘,因此这使得动画看起来不太好。此外,图像首先发生变化,然后翻转动画开始,正如我希望的那样,翻转动画应该开始,并且新图像应该出现在其中。因此,当动画停止时,用户应该会看到令人惊讶的新图像。 所以我真的不希望在图像视图中设置图像,然后动画启动并对图像视图进行动画处理

请建议我更好的方法或者是否有尚未过时的库。


查图兰加的解决方案可以完成这项工作。但你最好:

1.Use ViewPropertyAnimator。特别是,当您需要在多个上执行不同的动画时ImageViews.

2.旋转自270f to 360f第二次翻转,否则你的图像将是mirrored.

3.将第二个图像加载到Drawable before开始动画,有一个smooth回转。

final Drawable drawable=getResources().getDrawable(R.drawable.a);
final ImageView iv = ((ImageView)findViewById(R.id.imageView1));
iv.setRotationY(0f);
iv.animate().rotationY(90f).setListener(new AnimatorListenerAdapter()
{
    @Override
    public void onAnimationEnd(Animator animation)
    {
        iv.setImageDrawable(drawable);
        iv.setRotationY(270f);
        iv.animate().rotationY(360f).setListener(null);
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ImageView 中翻转和更改图像 的相关文章

随机推荐

  • Python从受密码保护的pdf中获取页数

    我一直在尝试找出一种方法 使用 Python 3 从受密码保护的 PDF 中获取页数 到目前为止 我已经尝试过模块 pypdf 和 pdfminer2 两者都失败 因为文件未解密 from pypdf import PdfReader re
  • 找不到 CacheableOperation[] 缓存的名为“”的缓存

    我的错误是 Exception in thread main java lang IllegalArgumentException Cannot find cache named getActionsBycasId for Cacheabl
  • Lucene 3.0.2 中的 Field.Store.COMPRESS

    我正在我的 java web 项目中将 lucene 2 4 1 升级到 3 0 2 在lucene API中我发现Field Store COMPRESS在3 0 2中不存在所以 我可以用什么来代替 Field Store COMPRES
  • 约束布局内的滚动视图不会滚动到父约束的底部

    我有一个大约有 12 13 个字段的表单 我用了一个Scrollview在约束布局内 下面是 XML 布局的层次结构 问题是 它不会滚动到底部 而是仅滚动到前 10 个视图 由于视图不再滚动 最后 3 个字段将被隐藏 家长布局
  • 在 HTML 中模拟闪烁的文本光标

    在 HTML 中插入闪烁光标 例如 DOS 中闪烁的粗下划线或 Linux 中的竖线 有什么好方法 该字符 图像将位于 H1 标题后面 并且在不同尺寸下看起来应该不错 你可以这样做CSS 这是vertical bar Fiddle http
  • 在画布上使用 D3 轴功能

    我正在尝试使用 D3 功能在画布上绘制轴 如此处所示https www tutorialsteacher com d3js axes in d3 https www tutorialsteacher com d3js axes in d3
  • Django 分页重复结果

    我在 Django 中遇到了这个奇怪的分页错误 使用object list作为视图的返回 但向其传递 paginate by 参数 它会重复一些结果 否则 如果我删除参数或设置为paginate by None 结果是正确的 如果使用分页
  • Java:如何在重写方法(祖父母方法)中调用 super().super() [重复]

    这个问题在这里已经有答案了 可能的重复 为什么是 super super method Java中不允许 https stackoverflow com questions 586363 why is super super method
  • medoo 中的 LIKE 运算符

    我该如何使用LIKE使用 medoo 框架的 sql 语句中的运算符 原始SQL语句 SELECT id name FROM table WHERE name LIKE foo 梅多声明 data db gt select table id
  • 构建sphinx文档时导入模块失败

    我在用着Sphinx版本1 4 5 我的项目结构如下 src gt main py docs generated with sphinx quickstart 即使在添加路径后src文件夹中docs conf py sys path ins
  • 检测用户何时点击 UIDatePicker 中的选择指示器?

    如何检测用户何时点击 UIDatePicker 中的选择指示器 如果没有这个 用户必须滚动到某个其他日期 然后再次返回以选择当日期选择器向上滑动时在选择指示器下显示的日期 多谢 Stine 更新 这是我自己能想到的唯一解决方案 UIDate
  • 用PHPWord将word文档解析为字符串

    我已经尝试了几种解决方案来将 Word 文档解析为 PHP 中的字符串 但是有时它们在处理某些 Word 文档时会遇到问题 所以我现在正在尝试 PHPWord 尝试将单词文档解析为字符串 我正在 PHPWord 中查看这个示例文件 它读取一
  • python中函数的均方根

    我想计算Python中函数的均方根 我的函数采用简单的形式 例如 y f x x 和 y 是数组 I tried Numpy 和 Scipy 文档 https docs scipy org doc 但什么也没找到 我假设您想要计算以下伪代码
  • 如何将字体真棒图标添加到输入类型文本中[重复]

    这个问题在这里已经有答案了 我尝试将字体很棒的图标转换为文本输入类型 但可以得到想法 但它不起作用 它将如下图所示 search location padding 9px 10px 8px 10px background fff color
  • 如何抑制 Swift 中的特定警告

    我有一个 Swift 函数 执行如下操作 func f gt Int switch WORDSIZE case 32 return 1 case 64 return 2 default return 0 Because WORDSIZE是一
  • System.Convert.ToSingle() 问题,(1.5) 与 (1,5)

    我正在用 C 编写程序来在模型格式之间进行转换 模型格式将数字作为文本 例如 0 136222 我可以使用 System Convert ToSingle 将其转换为浮点数 但在德国 我们使用逗号作为小数点 0 136222 System
  • 使用 PHPUnit 达到 100% 代码覆盖率

    我一直在为一个项目创建测试套件 虽然我意识到获得 100 的覆盖率并不the指标应该努力达到 代码覆盖率报告中有一个奇怪的地方 我想对此进行一些澄清 看截图 因为被测试方法的最后一行是return 最后一行 只是一个右括号 显示为从未执行
  • 如何从Java调用C++?

    我想从 Java 调用 C 方法 我读过有关 JNI 的内容 但我不知道如何获取所有库文件以及应该将其保存在哪里以便从命令行运行程序 有没有办法从 Eclipse 本身调用 C 方法 因为我用它来运行 Java 类 虽然我过去使用过 JNI
  • CSS div 圆角

    我正在尝试执行以下操作 这是我现在所得到的 但它没有正确渲染 有谁知道我该如何解决这个问题 CSS Curved Corners bl background url bl gif 0 100 no repeat background col
  • 在 ImageView 中翻转和更改图像

    我正在开发一个工作简单且工作效率很高的应用程序 但我有一个地方看起来不太好 那就是翻转动画 我想要的是 我有一个 Button 和按钮下方的 ImageView 单击按钮时 我想制作一个动画 看起来 ImageView 已翻转 并且下一个图