【问题标题】:Progress bar is not animating进度条没有动画
【发布时间】:2016-12-11 11:10:56
【问题描述】:

我试图让进度条在 3 秒内淡出,但它不起作用。

// Animate progress bar.
    progressBar1 = (ProgressBar) findViewById(R.id.mainImageView1);
    ObjectAnimator animato = ObjectAnimator.ofFloat(progressBar1, "alpha", 1.0f, 0.0f);
    animato.setInterpolator(new DecelerateInterpolator());
    animato.setDuration(3000);
    animato.start();

布局(xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:background="#FFFFFF">

    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/ic_launcher"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="168dp"
        android:id="@+id/mainImageView1"/>

    <ProgressBar
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="48dp"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:indeterminate="true"
        android:alpha="0.9"/>

</RelativeLayout>

最后,我所说的“工作”是指进度条不会消失。

【问题讨论】:

  • 到目前为止,您的代码看起来还不错,请发布您的 ProgressBar xml ,并详细解释“它不起作用”的含义。

标签: java android animation android-animation mobile-application


【解决方案1】:

您正在尝试使用此行将 ImageView 转换为 ProgressBar:

progressBar1 = (ProgressBar) findViewById(R.id.mainImageView1); 

R.id.mainImageView1 在您的 xml 中分配给您的 ImageView。

在你的 xml 中为你的 ProgressBar 分配一个 id:

<ProgressBar
    ...
     android:id="@+id/progress_bar"
/>

然后

progressBar1 = (ProgressBar) findViewById(R.id.progress_bar);

【讨论】:

    【解决方案2】:

    使用 AlphaAnimation 代替 ObjectAnimator >>>

    AlphaAnimation fade = new AlphaAnimation(1.0f, 0.0f);  // from 1 to 0 transparancy 
    fade.setDuration(1000);
    fade.setFillAfter(true)  //Keeps ProgressBar at 0 opacity after animation
    myProgressBar.startAnimation(fadeOutAnimation);
    

    希望它有效:)

    顺便说一句,您还没有为进度条分配 id, 为进度条分配 ID

    然后声明一个名为 myProgressBar 的变量

    然后用你的进度条的相应 id 初始化它。

    【讨论】:

    • 抱歉,它会立即崩溃。
    • 你好,哥们,有没有得到帮助??还是嘘我再讲几件事??抱歉迟到了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多