• android:ImageView,访问网上图片并显示出来


    <?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:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/urlpath" />
    
        <EditText
            android:id="@+id/urlpath"
            android:text="http://ww1.sinaimg.cn/mw690/6532527agw1ej5sd7j0jgj20eq09u3z5.jpg"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="" />
    
        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button" />
    
        <ImageView
            android:id="@+id/show"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
    </LinearLayout>


    package com.example.utils;
    
    import java.io.ByteArrayOutputStream;
    import java.io.InputStream;
    
    public class StreamTool {
    	public static byte[] readInputStream(InputStream inStream) throws Exception {
    		ByteArrayOutputStream outStream = new ByteArrayOutputStream();// 输出流,写到内存
    		byte[] buffer = new byte[1024];// 1K缓冲区容量
    		int len = 0;
    		while ((len = inStream.read(buffer)) != -1) {
    			outStream.write(buffer, 0, len);// 从数组buffer中读取从0到len的数据
    		}
    		inStream.close();
    		return outStream.toByteArray();
    	}
    }
    


    package com.example.image;
    
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    import com.example.utils.StreamTool;
    
    public class ImageService {
    	public static byte[] getImage(String path) throws Throwable {
    		URL url = new URL(path);
    		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    		conn.setRequestMethod("GET");
    		conn.setConnectTimeout(5 * 1000);
    		InputStream inStream = conn.getInputStream();// 通过输入流获取图片数据
    		return StreamTool.readInputStream(inStream);// 得到的图片的二进制数据
    	}
    }
    

    package com.example.image;
    
    import android.app.Activity;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ImageView;
    import android.widget.Toast;
    
    public class ImageActivity extends Activity {
    
    	private static final String TAG = "ImageActivity";
    	private EditText pathText;
    	private ImageView imageView;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_image);
    		pathText = (EditText) this.findViewById(R.id.urlpath);
    		imageView = (ImageView) this.findViewById(R.id.show);
    		Button button = (Button) this.findViewById(R.id.button);
    		button.setOnClickListener(new View.OnClickListener() {
    
    			@Override
    			public void onClick(View v) {
    				String path = pathText.getText().toString();
    				try {
    					byte[] data = ImageService.getImage(path);
    					Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0,
    							data.length);
    					imageView.setImageBitmap(bitmap);// 显示图片
    				} catch (Throwable e) {
    					Toast.makeText(ImageActivity.this, R.string.error, Toast.LENGTH_LONG)
    							.show();
    					Log.e(TAG, e.toString());
    				}
    			}
    		});
    	}
    }
    // <!-- 访问internet权限 -->
    // <uses-permission android:name="android.permission.INTERNET"/>
    
    



  • 相关阅读:
    HDU
    POJ-1325 Machine Schedule 二分图匹配 最小点覆盖问题
    HDU- 6437.Videos 最“大”费用流 -化区间为点
    曼哈顿最小生成树 全网最全
    牛客 136G-指纹锁 set容器重载
    牛客 136J-洋灰三角 +高中数学博大精深
    数学:矩阵快速幂
    数学:Burnside引理与Pólya定理
    数据结构:树上分块
    数据结构:Bitset
  • 原文地址:https://www.cnblogs.com/javafly/p/6037231.html
Copyright © 2020-2023  润新知