Toast 数据加载,内容加载,网络图片加载提示
2015-10-26 15:19
676 查看
Toast 数据加载,内容加载,网络图片加载提示
数据加载完毕提示:
功能代码实现:
创建一个线程,用来加载
Toast提示图片加载成功
定义一个ImageView来存放加载成功的图片
思路:
1.实例化ImageView存放图片
2.在主线程中一种异步回调机制Handler,使用它,我们可以在完成一个很长时间的任务后做出相应的通知,加载成功或失败
3.利用Bitmap处理接收的url
4.判断网络是否畅通
注意:网络权限的问题
扩展:
setMargin 方法:设置view的编剧
setGravity 方法:设置Toast的对齐方式
setView 方法:谁知Toast的布局视图
页面加载完毕提示
源码地址:http://download.csdn.net/detail/csdnyuandaimaxuexi/9214221
数据加载完毕提示:
<?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
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories