Android加载网络图片

Android加载网络图片

这里我用的okhttp加载网络数据

  1. 先声明一个变量

Handler handler=new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        if(msg.what==1){

//通过message,拿到字节数组
            byte []Pi=(byte[])msg.obj;

//使用BitmapFactory工厂,把字节数组转化为bitmap
            Bitmap bitmap=BitmapFactory.decodeByteArray(Pi,0,Pi.length);
          //显示图片  

event_tea_pic_iv.setImageBitmap(bitmap);
        }
    }
};

 

  1. 声明一个方法image(String url)用来处理网络断图片

public void image(String url){
    OkHttpClient okHttpClient=new OkHttpClient();
    Request request=new Request.Builder().url(url).build();
    Call call=okHttpClient.newCall(request);
    call.enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
         Log.i(zjc,网络断加载失败);
        }
        @Override
        public void onResponse(Call call, Response response) throws IOException {
             byte[] Picture_bt=response.body().bytes();
             Message message=handler.obtainMessage();
             message.obj=Picture_bt;
             message.what=1;
           handler.sendMessage(message);
        }
    });
}

 

 

  1. 大功告成
  2. 全部代码

package com.example.a11699.sdsyu.item;
public class HomeItem extends AppCompatActivity {
    ImageView event_tea_pic_iv;
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what==1){
                byte []Pi=(byte[])msg.obj;
                Bitmap bitmap=BitmapFactory.decodeByteArray(Pi,0,Pi.length);
                event_tea_pic_iv.setImageBitmap(bitmap);
            }
        }
    };
    @SuppressLint("HandlerLeak")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home_item);
        event_tea_pic_iv = findViewById(R.id.event_tea_pic_iv);
        final String a_id = getIntent().getStringExtra("act_id");
        image(activityInformation.getTea_pic());
    }

       public void image(String url){
        OkHttpClient okHttpClient=new OkHttpClient();
        Request request=new Request.Builder().url(url).build();
        Call call=okHttpClient.newCall(request);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                 byte[] Picture_bt=response.body().bytes();
                 Message message=handler.obtainMessage();
                 message.obj=Picture_bt;
                 message.what=1;
               handler.sendMessage(message);
            }
        });
    }
}

 

  1.  

猜你喜欢

转载自blog.csdn.net/qq_39860799/article/details/82936179