当前位置:首页 » 安卓系统 » 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-17 18:39:28 浏览:682
树莓派如何搭建mqtt服务器 发布:2024-05-17 18:27:38 浏览:436
门口机sip服务器ip是什么 发布:2024-05-17 17:38:27 浏览:553
光遇安卓区是什么服 发布:2024-05-17 17:22:25 浏览:24
linux驱动开发教程 发布:2024-05-17 17:19:52 浏览:501
抖音中秋节视频脚本 发布:2024-05-17 17:19:51 浏览:194
快递柜为什么用安卓系统 发布:2024-05-17 17:17:18 浏览:907
电脑配置光纤接口怎么标注 发布:2024-05-17 17:06:56 浏览:977
如何用方向键控制安卓机 发布:2024-05-17 16:38:11 浏览:199
雨田系统源码 发布:2024-05-17 16:28:06 浏览:587