1

我正在尝试在活动之间显示启动画面。为此,我使用了一个加载 ImageView 的处理程序,然后在一定时间后将可见性设置为 GONE。

我想让它更花哨一点,并使用 loadAnimation 对其进行动画处理。我遇到的问题是一旦处理程序结束动画停止但不会从屏幕上删除加载图像。相反,它只是作为整个活动的背景放置。

我想知道处理程序停止后如何删除启动图像。

下面是我的代码:

private static final long SPLASHTIME = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main)
    ImageView splash = (ImageView)findViewById(R.id.splashscreen);
    final Animation a = AnimationUtils.loadAnimation(getBaseContext(),R.anim.progress_anim);
    a.setDuration(1000);
    splash.startAnimation(a);
    new Handler().postDelayed(new Runnable(){
            @Override
             public void run() {
               a.cancel();
               splash.setVisibility(View.GONE);

            }
        }, SPLASHTIME);
}

初始图像的 XML:

<ImageView 
    android:id="@+id/splashscreen" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:src="@drawable/loading_circle"
    android:layout_gravity="center"
    />
4

3 回答 3

0

您需要添加

a.setFillAfter(true);

到 Runnable 中代码的末尾。

于 2013-08-09T03:45:56.520 回答
0

只需全局声明 splash 而不是在 oncreate() 中。

于 2013-05-16T12:36:55.773 回答
0

我认为您需要在 XML:ImageView 中添加可见性:gone

并使图像视图不可见

于 2013-05-16T12:46:24.103 回答