如何在Android中创建SplashScreen Facebook登录活动

时间:2014-01-01 01:50:48

标签: android facebook login splash-screen

我想在这里上传代码,但我向你保证,这是一团糟,你不想看到它。我一直试图在某种程度上遵循Facebook 3.6样本并使用他们的API,但它比以前的版本复杂得多。

有人有成就吗?有人能指出我正确的方向吗?

3 个答案:

答案 0 :(得分:2)

这里我包含了我在项目中完成的代码。请检查一下。它可能对你有帮助。

Animation animationFadeIn = AnimationUtils.loadAnimation(this, R.anim.fade_in);
Animation animationFadeOut = AnimationUtils.loadAnimation(this, R.anim.fade_out);

                handler = new Handle(this);

        animator = new Thread() {
            public void run() {
                try {
                    handler.sendMessage(handler.obtainMessage(1));
                    sleep(2000);
                    handler.sendMessage(handler.obtainMessage(2));
                    sleep(2000);
                    handler.sendMessage(handler.obtainMessage(3));
                    sleep(2000);
                    handler.sendMessage(handler.obtainMessage(4));

                } catch (Exception e) {
                    e.printStackTrace();

                }
            }
        };

        animator.start();

static class Handle extends Handler {
        private final WeakReference<SplashActivity> mSplash;

        Handle(SplashActivity splash) {
                        // weakReference is used for avoiding memory leak
            mSplash = new WeakReference<SplashActivity>(splash);
        }

        @Override
        public void handleMessage(Message msg) {
            // TODO Auto-generated method stub
            SplashActivity splash = mSplash.get();
            if (msg.what == 1 && splash.isRunning == true) {
                splash.iv.startAnimation(splash.animationFadeIn);
            } else if (msg.what == 2 && splash.isRunning == true) {
            } else if (msg.what == 3 && splash.isRunning == true) {
                splash.iv.startAnimation(splash.animationFadeOut);
            } else if (msg.what == 4 && splash.isRunning == true) {
                splash.iv.setImageResource(android.R.color.black);
                Intent i = new Intent(splash, MainActivity.class);              
                splash.overridePendingTransition(0, 0);
                splash.startActivity(i);
                splash.finish();
            }
            super.handleMessage(msg);

        }

    }

答案 1 :(得分:1)

检查此示例:

public class SplashActivity extends Activity {
    private long splashDelay = 3000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        // Remove title bar
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);

        // Remove notification bar
        /*
         * this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
         * WindowManager.LayoutParams.FLAG_FULLSCREEN);
        */

        setContentView(R.layout.activity_splash);

        TimerTask task = new TimerTask() {

            @Override
            public void run() {
                finish();
                startActivity(new Intent().setClass(SplashActivity.this,
                        MainActivity.class));
                overridePendingTransition(R.anim.fade, R.anim.hold);
            }
        };

        Timer timer = new Timer();
        timer.schedule(task, splashDelay);
    }
}

来源:Android Activity Splash Screen

答案 2 :(得分:0)

请在此处查看Facebook启动界面:Facebook's splash screen