【问题标题】:Simple ImageView color animation简单的 ImageView 彩色动画
【发布时间】:2014-11-12 20:54:48
【问题描述】:

您好,我对 Android 比较陌生,如果可能的话,我想提供一些关于在哪里搜索以解决我的问题的指南或建议。显然,我没有发布图片的声誉,因此我会尽力解释它。

假设我有一个空瓶子,一旦调用了这个片段/活动,我想引入一个动画,它会逐渐垂直(从下到上)开始用水填充这个 imageView。

任何想法或方向,

非常感谢,提前!

【问题讨论】:

  • 您可以使用自定义 ProgressBar 来执行此操作。更简单。在下面添加了有关如何执行此操作的答案。

标签: android animation imageview


【解决方案1】:

有 2 张瓶子的图片怎么样? 一个(在前景上)是一个透明的空瓶子 (背景)第二个将是“液体的形状”

当您的活动开始时,获取背景并对其进行动画处理,就像在此主题上发布的那样:https://stackoverflow.com/a/12127985/4232337

希望这会有所帮助!

【讨论】:

  • 感谢您的快速回答,看来这是我或多或少想做的事情。打算试试这个并接受你的答案!再次感谢。
【解决方案2】:

您可以使用自定义ProgressBar 来完成此操作。更简单

<ProgressBar
            android:id="@+id/progressbar"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginBottom="2dp"
            android:layout_marginTop="2dp"
            android:indeterminateOnly="false"
            android:max="100"
            android:progress="30"
            android:progressDrawable="@drawable/progress_bar_clip" >
        </ProgressBar>

progress_bar_clip.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:id="@android:id/background">
        <clip
            android:clipOrientation="vertical"
            android:drawable="@drawable/ic_launcher"
            android:gravity="bottom" />
    </item>
    <item android:id="@android:id/progress">
        <clip
            android:clipOrientation="vertical"
            android:gravity="bottom" >
            <bitmap android:src="@drawable/ic_launcher" >
            </bitmap>
        </clip>
    </item>

</layer-list>

您没有加载任何动画。只需使用处理程序并将进度条增加 1。

final ProgressBar bar = (ProgressBar) findViewById(R.id.progressbar);

        final Handler handler = new Handler();
        runnable = new Runnable() {

            @Override
            public void run() {
                if(bar.getProgress() != 100) {
                    bar.incrementProgressBy(1);
                    handler.postDelayed(runnable, 500);
                }
            }
        };;

        handler.post(runnable);

【讨论】:

  • 我不得不在我制作的一个应用程序中使用类似的东西,并想出了这个快速的解决方案。很高兴它有帮助。还要确保为ProgressBar 设置一个空玻璃背景,并在android:id="@android:id/progress" 中设置一个填充玻璃drawable。这样一来,实际上看起来就像水在玻璃杯中一样。
  • 嗨乔尔,再次感谢您的提示,所有解决方案都很棒:D!我有一个后续问题,当动画开始时它显示图片的一部分,我将进度设置为 0 并尝试了其他一些东西,但它似乎没有任何效果,任何直接的想法。再次非常感谢!
  • @thanosChatz 在 XML 中,将进度设置为 0 => android:progress="0"
猜你喜欢
  • 2011-07-15
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
相关资源
最近更新 更多