在Android中,要實現Loading效果,一般情況下都使用ProgressDialog控制項。ApiDemos/src/com/example/android/apis/view/ProgressBar3.java 提供兩個demo:仔細看了Android Market,發現卻是不一樣的,請看:那到底如何?呢?首先,我們建立一個布局檔案,res/layout/fullscreen_loading_indicator.xml, 其內容如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="center_vertical|center_horizontal" android:orientation="horizontal" android:id="@+id/fullscreen_loading_indicator" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ProgressBar android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/progressBarStyleSmall" > </ProgressBar> <TextView android:id="@+id/current_action" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:text="@string/loading" > </TextView></LinearLayout>
然後在main.xml 把它include 進來
<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:orientation="vertical" android:id="@+id/main_info" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent" > </LinearLayout> <include android:visibility="visible" android:layout_width="fill_parent" android:layout_height="fill_parent" layout="@layout/fullscreen_loading_indicator" > </include></FrameLayout>
主程式 Loading.java:
package org.lytsing.android.loading;import android.app.Activity;import android.os.Bundle;import android.widget.LinearLayout;public class Loading extends Activity { private LinearLayout mLoadingLayout; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // TODO: dismiss the loading, use this snippet code. //mLoadingLayout = (LinearLayout)findViewById(R.id.fullscreen_loading_indicator); //mLoadingLayout.setVisibility(View.GONE); }}
啟動並執行效果為:代碼下載: https://github.com/lytsing/MarketLoading
If you enjoyed this post, make sure you subscribe to my RSS feed!