-4
我想要在啓動活動之前顯示啓動畫面。爲此,我創建了一個啓動畫面。但我的問題是,我在我的應用程序中有多個活動,現在我正在使用該單個啓動畫面。那麼,要做到這一點的正確方法是,我必須將其逐個添加到所有活動中,或者可以一次完成相同的活動,那麼該怎麼做?這是什麼方式?我想用更少的代碼數量在Android中的多個活動中添加相同的初始屏幕。
我想要在啓動活動之前顯示啓動畫面。爲此,我創建了一個啓動畫面。但我的問題是,我在我的應用程序中有多個活動,現在我正在使用該單個啓動畫面。那麼,要做到這一點的正確方法是,我必須將其逐個添加到所有活動中,或者可以一次完成相同的活動,那麼該怎麼做?這是什麼方式?我想用更少的代碼數量在Android中的多個活動中添加相同的初始屏幕。
詳細說明我的評論,你很困惑與閃屏的目的。正如其名說,它應該只是出現在開始第二的飛濺和消失,進一步反饋給用戶,以顯示你必須使用ProgressBar
在這裏你可以外部化的代碼爲ProgressBar
有最小的代碼下載。
progress_bar_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"
android:background="@color/colorAccent">
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<!-- Customize yoiur progress bar screen here-->
</RelativeLayout>
則包括此佈局,無論你想
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.android.myApp.MainActivity"
tools:showIn="@layout/app_bar_main">
<include
android:id="@+id/progress_bar"
android:visibility="gone"
layout="@layout/progress_bar_layout" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
然後在您的Java類
private RelativeLayout progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//some code
progressBar = (RelativeLayout)findViewById(R.id.progress_bar);
//control parent instead of progress bar only
}
private void beginDownload(){
progressBar.setVisibility(View.VISIBLE);
//your download code
}
private void downloadComplete(){
progressBar.setVisibility(View.GONE);
//codes once download is completed
}
P.S.如果你的設計明確需要一些不同的屏幕其他 比旋轉進度條,然後使用相同的方法,只需更改
progress_bar_layout.xml
以反映您的設計,其他所有將 保持不變。 因此沒有這個任務的初始屏幕的概念,只是 進度條。
爲什麼要在加載任何活動之前顯示啓動畫面?你甚至知道在Android中飛濺的目的? –
是的,我知道飛濺的目的,這就是爲什麼我使用它!我爲我的應用使用了firebase,我的每項活動通常需要3-4秒才能從那裏加載數據..這並不好。所以我用飛濺在那裏加載緩存中的數據... – AnishKr
你絕對與閃屏混淆。 Splash用於應用程序的啓動,以覆蓋系統延遲以及一些初始應用程序設置。爲了顯示下載和其他繁重的任務,Android,iOS,Web有一些名爲'ProgressBar'的東西,你一定可以給它一個堅實的背景,但它仍然會被稱爲進度條,並且會爲你的目的出色。 –