Toast 数据加载,内容加载,网络图片加载提示
来源:互联网 发布:淘宝刷胶机器 编辑:程序博客网 时间:2024/05/16 20:04
Toast 数据加载,内容加载,网络图片加载提示
数据加载完毕提示:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/tv" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="等待数据加载……" /></LinearLayout>
功能代码实现:
创建一个线程,用来加载
package com.ncsyeyy.YeyyToast;import android.app.Activity;import android.os.Bundle;import android.os.Message;import android.os.Handler;import android.widget.TextView;import android.widget.Toast;public class MyActivity extends Activity { // 定义thread返回的id表示 private final int HANDLER_TEST = 0; /** * Called when the activity is first created. */ private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case HANDLER_TEST: Toast.makeText(MyActivity.this, "数据加载完毕", Toast.LENGTH_LONG).show(); tv.setText("数据加载完毕"); break; } } }; private TextView tv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv = (TextView) findViewById(R.id.tv); new Thread() { @Override public void run() { super.run(); try { sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); }// 构造message对象 Message msg=new Message(); msg.what=HANDLER_TEST; handler.sendMessage(msg); } }.start(); }}
Toast提示图片加载成功
定义一个ImageView来存放加载成功的图片
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/IV" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/ic_launcher" /></LinearLayout>
思路:
1.实例化ImageView存放图片
2.在主线程中一种异步回调机制Handler,使用它,我们可以在完成一个很长时间的任务后做出相应的通知,加载成功或失败
3.利用Bitmap处理接收的url
4.判断网络是否畅通
package com.ncsyeyy.YeyyToastWangluo;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.ConnectivityManager;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.widget.ImageView;import android.widget.Toast;import java.io.BufferedInputStream;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;public class MyActivity extends Activity { private ImageView iv; private final int SUCCESS=0;//定义常量图片加载成功 private final int FAILED=1;//图片加载不成功//图片加载的地址 private final String url="http://www.baidu.com/img/shouye_b5486898c692066bd2cbaeda86d74448.gif";//网络获取图片的Bitmap对象 private Bitmap bit=null; // 定义Handler对象 private Handler handler=new Handler(){ @Override public void handleMessage(Message message){ super.handleMessage(message);// 判断message中的what字段的值 switch (message.what){ case SUCCESS:// 加载图片成功的分支 Toast.makeText(MyActivity.this,"图片加载成功",Toast.LENGTH_LONG).show(); iv.setImageBitmap(bit); →//加载成功的图片放入Imageview中 break; case FAILED:// 加载图片失败的分支 Toast.makeText(MyActivity.this,"图片加载失败",Toast.LENGTH_LONG).show(); break; } } }; /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); iv = (ImageView) findViewById(R.id.IV); →// 判断网络是否畅通 if (isOpenNetwork()){// 定义一个thread类的对象 new Thread(){// 线程的run方法 @Override public void run(){ super.run(); try { bit=getRemoteImage(new URL(url));→//Bitmap 处理加载的图片 } catch (MalformedURLException e) { e.printStackTrace(); } if(bit!=null){// 构造message对象 Message msg=new Message(); msg.what=SUCCESS;// 给handler发送message信息对象 handler.sendMessage(msg); }else{// 构造message对象 Message msg=new Message(); msg.what=FAILED;// 给handler发送message信息对象 handler.sendMessage(msg); } } }.start();//启动线程 }else { Toast.makeText(MyActivity.this,"网络不通",Toast.LENGTH_LONG).show(); } }// 根据传入的url对象,请求网络图片 public Bitmap getRemoteImage(final URL aURL){ try { final URLConnection conn=aURL.openConnection(); conn.connect();// 从url连接中读取图片流 final BufferedInputStream bis=new BufferedInputStream(conn.getInputStream());// 从图片流中得到bitmap对象 final Bitmap bm= BitmapFactory.decodeStream(bis);// 关闭图片流 bis.close(); return bm; } catch (IOException e) { e.printStackTrace(); Log.d("BEBUGTAG","Oh noooz an error……"); } return null; } //判断网络状态是否正常 private boolean isOpenNetwork(){ ConnectivityManager connectivityManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);// 判断网络是否连接 if (connectivityManager.getActiveNetworkInfo()!=null){ return connectivityManager.getActiveNetworkInfo().isAvailable(); } return false; }}
注意:网络权限的问题
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
扩展:
setMargin 方法:设置view的编剧
setGravity 方法:设置Toast的对齐方式
setView 方法:谁知Toast的布局视图
页面加载完毕提示
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="页面加载完毕后显示Toast提示框" /></LinearLayout>
package com.ncsyeyy.YeyyActivityDownload;import android.app.Activity;import android.os.Bundle;import android.view.Gravity;import android.widget.Toast;public class MyActivity extends Activity { /** * Called when the activity is first created. * Toast在用户得不到焦点的情况下,给出用户某些提示信息 */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public void onWindowFocusChanged(boolean hasFocus){ super.onWindowFocusChanged(hasFocus);// 如果是得到焦点 if (hasFocus){// 构造Toast对象,设置显示的内容 Toast t=Toast.makeText(MyActivity.this,"页面加载完毕",Toast.LENGTH_LONG);// 设置Toast对象的对齐方式// Gravity.CENTER 居中对齐// Gravity.LEFT 左对齐// Gravity.RIGHT 右对齐// Gravity.TOP 向上对齐// Gravity.END 向下对齐 t.setGravity(Gravity.CENTER,0,0);// 显示Toast对象 t.show(); } }}
源码地址:http://download.csdn.net/detail/csdnyuandaimaxuexi/9214221
0 0
- Toast 数据加载,内容加载,网络图片加载提示
- Volley加载网络数据加载网咯图片
- 数据加载提示窗口
- 加载数据提示动画
- Android ListView加载网络数据和图片
- ListView加载网络数据和图片
- ListView加载网络数据和图片
- ListView加载网络数据和图片
- Android异步加载获取网络数据(图片)
- 图片轮播并加载网络数据
- webView加载数据内容
- Android EditText加载HTML内容(内容包含网络图片)
- Android 图片异步加载 加载网络图片
- android加载网络图片,圆形图片加载
- Delphi加载网络图片
- android加载网络图片
- 网络加载图片
- 加载网络图片
- 算法-分治
- NodeJs
- poj 2677 dp解双调tsp
- ubuntu中修改计算机名
- ajax 跨域请求
- Toast 数据加载,内容加载,网络图片加载提示
- Android Studio Gradle基础
- android 动画
- 1019. 数字黑洞 (20)
- 根据url 参数,页面显示不同背景图片
- 离线谷歌卫星地图加载服务中间件调用示例For Google API
- 中文分词基本算法介绍
- 从零开始nodejs系列文章
- LeakCanary-Android内存泄露检测