gpt4 book ai didi

java - 如何让一个ImageView覆盖另一个View并在一定时间后隐藏?

转载 作者:搜寻专家 更新时间:2023-11-01 08:56:25 25 4
gpt4 key购买 nike

我正在制作一个非常简单的 Andriod 应用程序,我想知道是否可以就我的应用程序获得一些帮助。

我想在整个 ListView(包括操作栏)上显示 ImageView 3 秒,然后移除 ImageView(或隐藏它,任何东西),以返回到 ListView 。

如何做到这一点?我尝试了一些方法,但它要么破坏了我的代码,要么根本不显示任何内容。

预先感谢大家 - 如果您需要任何进一步的解释,请告诉我。

编辑:根据下面的问题,我希望在显示 ListView 后立即显示 ImageView,持续 3 秒,然后消失。

最佳答案

好的。你想要的其实很简单。

只需创建一个包含一个 ListView 和一个位于其上方的 ImageView 的 RelativeLayout。然后在 onCreate(...) 方法中,您使用处理程序并在 3 秒后将 ImageView 的可见性设置为GONE

这是 layout.xml 文件:

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

<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
</ListView>

<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:scaleType="fitXY"
android:src="@drawable/your_image" />

</RelativeLayout>

在 onCreate(...) 方法中:

@Override    
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.yourlayout);

final ImageView iv = (ImageView) findViewById(R.id.imageView1);

Handler h = new Handler();
h.postDelayed(new Runnable() {

@Override
public void run() {
// EITHER HIDE IT IMMEDIATELY
iv.setVisibility(View.GONE);

// OR HIDE IT USING ANIMATION
hideImageAnimated(iv);

// DONT use both lines at the same time :)
}
}, 3000); // 3 seconds
}

为了使事情变得更更流畅,您可以在 ImageView 上使用AlphaAnimation:

public void hideImageAnimated(final ImageView iv) {

Animation alpha = new AlphaAnimation(1.0f, 0.0f);
alpha.setDuration(1000); // whatever duration you want

// add AnimationListener
alpha.setAnimationListener(new AnimationListener(){

@Override
public void onAnimationEnd(Animation arg0) {
iv.setVisibility(View.GONE);
}

@Override
public void onAnimationRepeat(Animation arg0) { }

@Override
public void onAnimationStart(Animation arg0) { }

});

iv.startAnimation(alpha);
}

关于java - 如何让一个ImageView覆盖另一个View并在一定时间后隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18592711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com