图像不会显示在contentview中

时间:2014-06-24 10:29:26

标签: android multithreading android-layout xamarin android-imageview

Xamarin中,我有一个简单的Activity,在加载另一个Activity之前加载了五秒钟。

第一个Activity将图片作为Layout的一部分,但此图片未显示。

这是我的Activity代码:

protected override void OnCreate (Bundle bundle)
{
    base.OnCreate (bundle);

    SetContentView (Resource.Layout.SplashActivity);

    Thread.Sleep(5000);

    var testActivity = new Intent (this, typeof(TestStartup));
    StartActivity (testActivity);
}

这是我的SplashActivity布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/background_color">
    <ImageView
        android:src="@drawable/Splash"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/SplashImage"
        android:layout_gravity="center_vertical" />
</LinearLayout>

应用程序等待五秒钟,然后加载TestStartup Activity,但是在五秒钟等待期间不显示图像。如何在Activity等待五秒钟时显示此图像?

我可以帮助您使用此代码吗?

提前致谢

2 个答案:

答案 0 :(得分:0)

未显示,因为您使用

阻止了UI线程
Thread.Sleep(5000);

你应该摆脱这种逻辑。依靠x secs总是错的。您正在等待的计算可能已准备就绪,使剩余等待时间成为浪费,或者可能需要更多x secs。要问"fix"您的问题,您可以使用Handler.postDelayed(Runnable, 5000),并将您需要执行的逻辑放在run方法中。这样,至少,UI线程不会被阻止

答案 1 :(得分:0)

您可能想看一下Xamarin在Android中创建启动画面的教程:

http://developer.xamarin.com/guides/android/user_interface/creating_a_splash_screen/

看起来你是在正确的轨道上,但他们使用主题而不是设置内容视图。如前所述,您的布局未显示,因为您的sleep方法阻止了UI线程。使用主题是解决此问题的好方法,您可以重复使用已有的许多内容。