我正在创建一个非常简单的Andriod应用程序,我想知道我是否可以通过我的应用程序获得一些帮助。
我想在整个ListView(包括操作栏)上显示一个ImageView 3秒钟,然后删除ImageView(或隐藏它,任何东西),返回列表视图。
如何做到这一点?我尝试过一些东西,但要么破坏了我的代码,要么根本没有显示任何东西。
先谢谢大家 - 如果您需要进一步解释,请与我们联系。
编辑:根据下面的问题,我想在显示ListView后立即显示ImageView,持续3秒,然后消失。
答案 0 :(得分: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);
}