android 网络加载图片

Posted 情似雨餘黏地絮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 网络加载图片相关的知识,希望对你有一定的参考价值。

通过网络链接加载网络图片

加权限,允许访问网络

 <uses-permission android:name="android.permission.INTERNET"/>

 

MainActivity

package com.chuanxidemo.shaoxin.demo08;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;



public class MainActivity extends AppCompatActivity {
    private ImageView image;
    private String sIp = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1487997894044&di=569ca6601ccba29b648ce0237a81fa51&imgtype=0&src=http%3A%2F%2Fd.hiphotos.baidu.com%2Fimage%2Fpic%2Fitem%2F562c11dfa9ec8a13f075f10cf303918fa1ecc0eb.jpg";
    InputStream inputStream = null;
    Bitmap bitmap = null;
    URL url = null;
    URLConnection connection = null;
    private Handler handler;

    //网络编程
    //大作业:android studio
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        image = (ImageView) findViewById(R.id.image);
        Button btn = (Button)findViewById(R.id.btn);
        handler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                image.setImageBitmap(bitmap);
            }
        };
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //获取图片
                try {
                    url = new URL(sIp);
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                }
                new Thread() {
                    @Override
                    public void run() {
                        super.run();
                        try {
                            connection = url.openConnection();
                            inputStream = connection.getInputStream();
                            bitmap = BitmapFactory.decodeStream(inputStream);
                            if (bitmap!=null){
                                handler.sendEmptyMessage(0x123);
                            }

                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }.start();

            }
        });
        //通过http协议访问数据
        //获取图片,通过网络
        //客户端
        //服务端
    }


}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.chuanxidemo.shaoxin.demo08.MainActivity">

    <ImageView
        android:id="@+id/image"
        android:src="@mipmap/ic_launcher"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点击获取图片" />
</LinearLayout>

 

以上是关于android 网络加载图片的主要内容,如果未能解决你的问题,请参考以下文章

Android-WebView加载网络图片&网页

熟悉Android---使用imageView加载网络图片

Android异步加载网络图片

简单网络图片加载

Android之网络图片加载神器Fresco

android 网络加载图片