當前位置:首頁 » 安卓系統 » Android載入網路進度

Android載入網路進度

發布時間: 2022-09-07 15:47:21

⑴ Android,頁面載入時,進度條卡死一段時間後才會跳入下個頁面是什麼情況,代碼見補充

中間加一個prepared方法

⑵ 長按如何使進度條變化Android

通過MediaPlayer調節。
系統自帶的進度條的顏色比較單調,實際開發中使用較少,可以自定義進度條背景,新建一個progressbarbg.xml文件。gradient可以設置進度條的漸變色,android:endColor和android:startColor可以設置漸變開始和結束的顏色。定義完成以後,便可以使用。
在音樂進度,網路下載時,需動態載入進度條,默認情況下,設置進度條,使用setProgress即可。但有時除了動態設置進度,仍需要動態設置進度條顏色通過MediaPlayer播放音樂並獲取進度,設置進度。

⑶ 安卓的ProgressBar.setSecondaryProgress(int)

這么說你肯定明白:網路視頻載入的時候有個播放進度和緩沖進度,播放進度一般可以用setProgerss來顯示,而setSecondaryProgress就是用來顯示緩沖進度的,同樣的360的雷神引擎也是一樣,setProgress是文件寫入本地進度,setSecondaryProgress就是文件載入進度。還不明就自己寫一個Demo測試一遍。寫一個把復制文件的程序,setProgress表示往流裡面讀數據,setSecondaryProgerss表示從流裡面輸出數據。

⑷ android中webview 怎麼實現網頁載入時顯示載入進度

android中只需要給webView注冊一個事件即可實現載入進度。
以下是具體實現代碼:
1.從webView中獲取設置
WebSettings sws = webView.getSettings();
sws.setSupportZoom(true);
sws.setBuiltInZoomControls(true);
webView.setInitialScale(25);
webView.getSettings().setUseWideViewPort(true);

2.注冊setWebChromeClient事件
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
// Activity和Webview根據載入程度決定進度條的進度大小
// 當載入到100%的時候 進度條自動消失
//WebViewProgressActivity.this.setTitle("Loading...");
//WebViewProgressActivity.this.setProgress(progress * 100);
if (progress == 100) {
progressBar.setVisibility(View.GONE);
//WebViewProgressActivity.this.setTitle("完成");
}
}
});

3.注意在onProgressChanged中處理進度,progress就是進度值。

⑸ Android Studio navigation 一直在Loading為什麼

目沒有完全構建成功,所以一直在Loading,建議你查看Android Studio右下角構建進度,看看正處於哪種階段,大部分情況正在下載需要的依賴等。在網路暢通的情況下,等待一段時間,看看有沒有構建成功,如果沒有構建成功,也會有相對應的報錯信息,再針對具體問題進行修改即可
1.打開ShadowShocks客戶端開啟fan牆模式(或其他工具)。
2.Android Studio中設置HTTP Proxy,點擊「Setting」 -> "HTTP Proxy",勾選"Auto-detect proxy settings",點擊」OK「即可。

⑹ android網路載入進度條怎麼使用

由於Android的界面更新只能通過自己的UI線程進行操作,所以我們需要用到Handler在進行更新界面的操作。

1、聲明變數
private Handler handler = new Handler();
private ProgressDialog progressDialog = null;

2、在開始進行網路連接時顯示進度條對話框
progressDialog = ProgressDialog.show(MyActivity.this, "請稍等...", "獲取數據中...", true);

3、在handler.post中進行界面更新
public void setListAdapter(){
handler.post(new Runnable() {
public void run() {
//將獲取到的數據更新到列表中
MyListView.setAdapter(saImageItems);
}
}
});

4、開個新的線程進行網路連接獲取數據
new Thread(new Runnable(){

@Override
public void run() {
// TODO Auto-generated method stub
//向伺服器請求數據
mapList=MyAPI.getAllDatas();
setListAdapter(mapList);
//更新完列表數據,則關閉對話框
progressDialog.dismiss();
}}).start();

整個過程就這樣完成了,下面是效果圖:

⑺ android非同步網路載入怎麼實現

AndroidManifest.xml

01 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
02 package="com.doodle.asycntasksample"
03 android:versionCode="1"
04 android:versionName="1.0" >
05
06 <uses-sdk
07 android:minSdkVersion="8"
08 android:targetSdkVersion="15" />
09
10 <uses-permission android:name="android.permission.INTERNET" />
11
12 <application
13 android:icon="@drawable/ic_launcher"
14 android:label="@string/app_name"
15 android:theme="@style/AppTheme" >
16 <activity
17 android:name="com.doodle.asynctasksample.ThreadHandlerPostActivity" >
18 </activity>
19 <activity android:name="com.doodle.asynctasksample.AsyncTastActivity" >
20 </activity>
21 <activity android:name="com.doodle.asynctasksample.ThreadHandlerActivity" >
22 </activity>
23 <activity
24 android:name="com.doodle.asynctasksample.BootActivity"
25 android:label="@string/title_activity_boot" >
26 <intent-filter>
27 <action android:name="android.intent.action.MAIN" />
28 <category android:name="android.intent.category.LAUNCHER" />
29 </intent-filter>
30 </activity>
31 </application>
32
33 </manifest>

list_item.xml

01 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
02 xmlns:tools="http://schemas.android.com/tools"
03 android:layout_width="match_parent"
04 android:layout_height="match_parent" >
05
06 <LinearLayout
07 android:layout_width="match_parent"
08 android:layout_height="150dp"
09 android:layout_alignParentLeft="true"
10 android:layout_alignParentRight="true"
11 android:layout_alignParentTop="true" >
12
13 <ImageView
14 android:id="@+id/imageView"
15 android:layout_width="match_parent"
16 android:layout_height="match_parent"
17 android:src="<a href="http://my.oschina.net/asia" target="_blank"rel="nofollow">@android</a> :drawable/alert_dark_frame" />
18
19 </LinearLayout>
20
21 </RelativeLayout>

ImageAdapter.java

01 /**
02 * Create a customized data structure for each item of ListView.
03 * An ImageAdapter inherited from BaseAdapter must overwrites
04 * getView method to show every image in specified style.In this
05 * instance only a ImageView will put and fill in each item of
06 * ListView.
07 *
08 * @author Jie.Geng Aug 01, 2012.
09 *
10 */
11 public class ImageAdapter extends BaseAdapter {
12 private Context context;
13 private List<HashMap<String, Object>> listItems;
14 private LayoutInflater listContainer;
15
16 public ImageView imageView;
17
18 public ImageAdapter(Context context, List<HashMap<String, Object>> listItems) {
19 super();
20 this.context = context;
21 this.listContainer = LayoutInflater.from(context);
22 this.listItems = listItems;
23 }
24
25 @Override
26 public int getCount() {
27 return listItems.size();
28 }
29
30 @Override
31 public Object getItem(int position) {
32 return null;
33 }
34
35 @Override
36 public long getItemId(int position) {
37 return 0;
38 }
39
40 @Override
41 public View getView(int position, View convertView, ViewGroup parent) {
42 if(convertView == null) {
43 convertView = listContainer.inflate(R.layout.list_item, null);
44 imageView = (ImageView) convertView.findViewById(R.id.imageView);
45 convertView.setTag(imageView);
46 } else {
47 imageView = (ImageView) convertView.getTag();
48 }
49 imageView.setImageDrawable((Drawable) listItems.get(position).get("ItemImage"));
50 return convertView;
51 }

一、採用AsyncTask

AsyncTask簡介 AsyncTask的特點是任務在主線程之外運行,而回調方法是在主線程中執行,這就有效地避免了使用Handler帶來的麻煩。閱讀 AsyncTask的源碼可知,AsyncTask是使用java.util.concurrent 框架來管理線程以及任務的執行的,concurrent框架是一個非常 成熟,高效的框架,經過了嚴格的測試。這說明AsyncTask的設計很好的解決了匿名線程存在的問題。 AsyncTask是抽象類,其結構圖如下圖所示: AsyncTask定義了三種泛型類型 Params,Progress和Result。 Params 啟動任務執行的輸入參數,比如HTTP請求的URL。 Progress 後台任務執行的百分比。 Result 後台執行任務最終返回的結果,比如String。 子類必須實現抽象方法doInBackground(Params… p) ,在此方法中實現任務的執行工作,比如連接網路獲取數據等。通常還應 該實現onPostExecute(Result r)方法,因為應用程序關心的結果在此方法中返回。需要注意的是AsyncTask一定要在主線程中創 建實例。 AsyncTask的執行分為四個步驟,每一步都對應一個回調方法,需要注意的是這些方法不應該由應用程序調用,開發者需要做的 就是實現這些方法。在任務的執行過程中,這些方法被自動調用,運行過程,如下圖所示: onPreExecute() 當任務執行之前開始調用此方法,可以在這里顯示進度對話框。 doInBackground(Params…) 此方法在後台線程執行,完成任務的主要工作,通常需要較長的時間。在執行過程中可以調用 publicProgress(Progress…)來更新任務的進度。 onProgressUpdate(Progress…) 此方法在主線程執行,用於顯示任務執行的進度。 onPostExecute(Result) 此方法在主線程執行,任務執行的結果作為此方法的參數返回There are a few threading rules that must be followed for this class to work properly: The AsyncTask class must be loaded on the UI thread. This is done automatically as of JELLY_BEAN. The task instance must be created on the UI thread. execute(Params...) must be invoked on the UI thread. Do not call onPreExecute(), onPostExecute(Result), doInBackground(Params...), onProgressUpdate(Progress...) manually. The task can be executed only once (an exception will be thrown if a second execution is attempted.)AsyncTastActivity.java

01 public class AsyncTastActivity extends Activity {
02
03 private List<String> urlList;
04 private ImageAdapter listItemAdapter;
05 private ArrayList<HashMap<String, Object>> listItem;
06
07 @Override
08 public void onCreate(Bundle savedInstanceState) {
09 super.onCreate(savedInstanceState);
10 setContentView(R.layout.activity_main);
11 urlList = new ArrayList<String>();
12 urlList.add("http://www..com/img/_sylogo1.gif");
13 urlList.add("http://y2.ifengimg.com/2012/06/24/23063562.gif");
14 urlList.add("http://himg2.huanqiu.com/statics/images/index/logo.png");
15
16 listItem = new ArrayList<HashMap<String, Object>>();
17
18 listItemAdapter = new ImageAdapter(this, listItem);
19 ListView listView = (ListView) this.findViewById(R.id.listView1);
20 listView.setAdapter(listItemAdapter);
21
22 AsyncTask<List<String>, Integer, Hashtable<String, SoftReference<Drawable>>> task = newAsyncTask<List<String>, Integer, Hashtable<String, SoftReference<Drawable>>>() {
23
24 @Override
25 protected void onPreExecute() {
26 super.onPreExecute();
27 }
28
29 @Override
30 protected Hashtable<String, SoftReference<Drawable>> doInBackground(
31 List<String>... params) {
32 Hashtable<String, SoftReference<Drawable>> table = new Hashtable<String, SoftReference<Drawable>>();
33 List<String> imageUriList = params[0];
34 for (String urlStr : imageUriList) {
35 try {
36 URL url = new URL(urlStr);
37 Drawable drawable = Drawable.createFromStream(
38 url.openStream(), "src");
39 table.put(urlStr, new SoftReference<Drawable>(drawable));
40 } catch (Exception e) {
41 e.printStackTrace();
42 }
43 }
44 return table;
45 }
46
47 @Override
48 protected void onPostExecute(
49 Hashtable<String, SoftReference<Drawable>> result) {
50 super.onPostExecute(result);
51 Collection<SoftReference<Drawable>> col = result.values();
52 for (SoftReference<Drawable> ref : col) {
53 HashMap<String, Object> map = new HashMap<String, Object>();
54 map.put("ItemImage", ref.get());
55 listItem.add(map);
56 }
57 listItemAdapter.notifyDataSetChanged();
58
59 }
60 };
61
62 task.execute(urlList);
63 }
64
65 @Override
66 public boolean onCreateOptionsMenu(Menu menu) {
67 getMenuInflater().inflate(R.menu.activity_main, menu);
68 return true;
69 }
70 }

二、採用Thread + Handler + Message
Handler簡介 Handler為Android提供了一種非同步消息處理機制,它包含兩個隊列,一個是線程列隊,另一個是消息列隊。使用post方法將線 程對象添加到線程隊列中,使用sendMessage(Message message)將消息放入消息隊列中。當向消息隊列中發送消息後就立 即返回,而從消息隊列中讀取消息對象時會阻塞,繼而回調Handler中public void handleMessage(Message msg)方法。因此 在創建Handler時應該使用匿名內部類重寫該方法。如果想要這個流程一直執行的話,可以再run方法內部執行postDelay或者 post方法,再將該線程對象添加到消息隊列中重復執行。想要停止線程,調用Handler對象的removeCallbacks(Runnable r)從 線程隊列中移除線程對象,使線程停止執行。

熱點內容
兩驅車買哪個配置最好 發布:2024-05-03 04:41:42 瀏覽:802
如何給伺服器上傳文件 發布:2024-05-03 04:28:47 瀏覽:708
android仿微信底部菜單 發布:2024-05-03 04:09:34 瀏覽:695
LOL腳本識別 發布:2024-05-03 03:53:14 瀏覽:793
祁東福祥惠民卡初始密碼多少 發布:2024-05-03 03:36:02 瀏覽:247
王者什麼東西需要二級密碼 發布:2024-05-03 03:26:11 瀏覽:766
網頁界面升級訪問 發布:2024-05-03 03:26:06 瀏覽:210
安卓區怎麼更改充電提示音 發布:2024-05-03 03:23:56 瀏覽:48
遺傳演算法圖像分割 發布:2024-05-03 03:16:27 瀏覽:801
外圓圓弧怎麼編程 發布:2024-05-03 03:13:59 瀏覽:213