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