緩衝進度條或載入進度條,緩衝進度條載入
緩衝進度條或載入進度條,在載入頁面或者視頻載入過程中,為了做到更好的UI及App功能體驗互動,這些緩衝載入的等待效果是必不可少的;
下面來看一下旋轉的動畫效果:那麼,他們的具體源碼在這裡:loading_1:
<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees="1080.0" > <shape android:innerRadiusRatio="3" android:shape="ring" android:thicknessRatio="8" android:useLevel="false" > <gradient android:centerColor="#FFDC35" android:centerY="0.50" android:endColor="#CE0000" android:startColor="#FFFFFF" android:type="sweep" android:useLevel="false" /> </shape></rotate>
loading_2:
<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item > <rotate android:drawable="@drawable/movie_loading" android:fromDegrees="0.0" android:pivotX="50.0%" android:pivotY="50.0%" android:toDegrees="1080.0" /> </item></layer-list>
loading_3:
<?xml version="1.0" encoding="UTF-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" > <item android:duration="150"> <clip android:clipOrientation="horizontal" android:drawable="@drawable/loading_01" android:gravity="left" /> </item> <item android:duration="150"> <clip android:clipOrientation="horizontal" android:drawable="@drawable/loading_02" android:gravity="left" /> </item> <item android:duration="150"> <clip android:clipOrientation="horizontal" android:drawable="@drawable/loading_03" android:gravity="left" /> </item> <item android:duration="150"> <clip android:clipOrientation="horizontal" android:drawable="@drawable/loading_04" android:gravity="left" /> </item> <item android:duration="150"> <clip android:clipOrientation="horizontal" android:drawable="@drawable/loading_05" android:gravity="left" /> </item> <item android:duration="150"> <clip android:clipOrientation="horizontal" android:drawable="@drawable/loading_06" android:gravity="left" /> </item> <item android:duration="150"> <clip android:clipOrientation="horizontal" android:drawable="@drawable/loading_07" android:gravity="left" /> </item> <item android:duration="150"> <clip android:clipOrientation="horizontal" android:drawable="@drawable/loading_08" android:gravity="left" /> </item> <item android:duration="150"> <clip android:clipOrientation="horizontal" android:drawable="@drawable/loading_09" android:gravity="left" /> </item> <item android:duration="150"> <clip android:clipOrientation="horizontal" android:drawable="@drawable/loading_10" android:gravity="left" /> </item> <item android:duration="150"> <clip android:clipOrientation="horizontal" android:drawable="@drawable/loading_11" android:gravity="left" /> </item> <item android:duration="150"> <clip android:clipOrientation="horizontal" android:drawable="@drawable/loading_12" android:gravity="left" /> </item></animation-list>
activity_main.java:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:gravity="center_horizontal" android:background="#222222"> <ProgressBar android:id="@+id/loading_1" android:layout_width="50dp" android:layout_height="50dp" android:layout_marginTop="60dp" android:indeterminate="false" android:padding="5dp" android:indeterminateDrawable="@drawable/loading_1" /> <ProgressBar android:id="@+id/loading_2" android:layout_width="50dp" android:layout_height="50dp" android:layout_marginTop="60dp" android:indeterminate="false" android:padding="5dp" android:indeterminateDrawable="@drawable/loading_2" /> <ProgressBar android:id="@+id/loading_3" android:layout_width="50dp" android:layout_height="50dp" android:indeterminate="false" android:layout_marginTop="60dp" android:padding="5dp" android:indeterminateDrawable="@drawable/loading_3" /></LinearLayout>
不需要在Activity.java中添加任何代碼,已經搞定!
後待續。。。
為何我看視頻老是看一下它就載入一下明明緩衝了進度條它還是要看一下載入一下
因為載入視屏不是說連續性載入的呀,他會選擇資源多的優先載入。所以可能先前載入瞭然後中間有一段是未曾載入的然後後面又是載入了的。有時候只有一小段但是很少資源所以要載入好久就需要緩衝啊緩衝~所以你可以先讓他載入一段時間再去看,這樣就不會一頓一頓的了。
怎做一個有flash大檔案網頁緩衝時的進度條
單獨做一個swf,在裡面做進度條,代碼如下:
my_mcl_main = new MovieClipLoader();
myListener_main = new Object();
myListener_main.onLoadStart = function (target_mc)
{
loading._visible = true;//進度條的可見度,當開始載入影片的時候顯示。
};
myListener_main.onLoadProgress = function (target_mc, loadedBytes, totalBytes)
{
loadtotal = Math.ceil(loadedBytes / totalBytes * 100);
loading.gotoAndStop(loadtotal);//loading就是你那個進度條的執行個體名稱。總共100幀。
loading.txt = "已下載:" + loadtotal + "%";//顯示百分比那玩意兒
};
myListener_main.onLoadComplete = function (target_mc)
{
loading._visible = false;//進度條的可見度,如果影片載入完畢,就隱藏不見了。
};
myListener_main.onLoadInit = function (target_mc)
{
mcload.gotoAndStop(2);//一般用這種載入,你那個相簿的第一幀是空白的,並且加stop,第二幀才有內容。用mcload.gotoAndPlay(2)也一樣,但是就要在你的相簿裡面加另一個stop了。
};
myListener_main.onLoadError = function (target_mc, errorCode)
{
trace ("*********檔案沒有完全載入*********");
};
my_mcl_main.addListener(myListener_main);
my_mcl_main.loadClip("相簿.swf", mcload);//mcload是載入相簿後,用來存放相簿的影片剪輯執行個體名稱。要載入的檔案請使用英文,不要用中文!
PS:這樣的話,你這個專門用來載入的swf只有10幾K,在網頁上會很快顯示出來的。如果你的網頁背景不是白色的,例如黑色或者其他深色,在HTML中加<param name="wmode" value="transparent" />就是把swf變成透明的,這樣別人如論如何也看不到那個白色地區。還不清楚請HI我。
參考資料:www.dolphinhao.tk/