[android] 网络图片查看器

前端之家收集整理的这篇文章主要介绍了[android] 网络图片查看器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

界面布局@H_301_1@LinerLayout线性布局,@H_301_1@ImageView控件,@H_301_1@EditText控件 @H_301_1@hint属性提示信息,@H_301_1@Button控件。

Android:layout_weight=””属性,权重,只有控件的宽度和高度为@H_301_1@0的时候才代表权重,否则它代表渲染的优先级,值越大优先级越低,默认是@H_301_1@0,先渲染其他控件

singleLine属性 单行

 

业务逻辑,获取@H_301_1@EditText的值放到@H_301_1@ImageView里,实质上是@H_301_1@http@H_301_1@get请求

获取@H_301_1@EditText对象,通过@H_301_1@findViewById()

获取值,通过调用@H_301_1@EditText对象的@H_301_1@getText()方法调用@H_301_1@toString()方法调用@H_301_1@trim()方法

调用@H_301_1@TextUtils类的@H_301_1@isEmpty()方法,判断是否为空,为空就@H_301_1@Toast一下

 

发送@H_301_1@get请求

获取@H_301_1@Url对象,通过@H_301_1@new Url(path),参数:@H_301_1@path@H_301_1@String的路径,这里需要捕获异常

获取@H_301_1@HttpUrlConnection对象,通过调用@H_301_1@Url对象的@H_301_1@openConnection()方法,返回@H_301_1@UrlConnection对象,然后强制类型转换一下

调用@H_301_1@HttpUrlConnection对象的@H_301_1@setRequestMethod(method)方法,设置请求方法@H_301_1@method@H_301_1@GET

调用@H_301_1@HttpUrlConnection对象的@H_301_1@setConnectTimeout(millis),设置超时时间,@H_301_1@millis是毫秒

调用@H_301_1@HttpUrlConnection对象的@H_301_1@setRequestProperty(field,newValue)方法,设置请求参数,比如请求头,@H_301_1@User-Agent

调用@H_301_1@HttpUrlConnection对象的@H_301_1@getResponseCode()方法获取服务器的响应码,@H_301_1@200 ok

调用@H_301_1@HttpUrlConnection对象的@H_301_1@getInputStream()方法获取输入流,返回@H_301_1@InputStream对象

 

调用@H_301_1@BitmapFactory类的@H_301_1@decodeStream(is)方法得到@H_301_1@Bitmap对象,参数:@H_301_1@is@H_301_1@InputStream对象

调用@H_301_1@ImageView对象的@H_301_1@setImageBitmap(bitmap)方法设置图片,参数:@H_301_1@Bitmap对象

 

 

所有访问网络的都需要加权限@H_301_1@android.permission.INTERNET

此时直接部署,会报一个错误@H_301_1@NetworkOnMainThreadException,不允许在主线程上进行网络操作,下面的代码只在低版本时有效

 

package com.tsh.internetpic;

import java.io.InputStream;
 java.net.HttpURLConnection;
 java.net.URL;

 android.app.Activity;
 android.graphics.Bitmap;
 android.graphics.BitmapFactory;
 android.os.Bundle;
 android.text.TextUtils;
 android.view.View;
 android.widget.EditText;
 android.widget.ImageView;
 android.widget.Toast;

public class MainActivity extends Activity {
    private EditText et_path;
     ImageView iv_pic;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_path=(EditText) findViewById(R.id.et_path);
        iv_pic=(ImageView) findViewById(R.id.iv_pic);
    }
     getInternetImg(View v){
        String path=et_path.getText().toString().trim();
        if(TextUtils.isEmpty(path)){
            Toast.makeText(this,"图片路径不能为空",0).show();
        }else{
            try {
                URL url=new URL(path);
                HttpURLConnection conn=(HttpURLConnection) url.openConnection();
                conn.setRequestMethod("GET");
                conn.setConnectTimeout(5000);
                conn.setRequestProperty("User-Agent","");
                int code=conn.getResponseCode();
                if(code==200){
                    InputStream is=conn.getInputStream();
                    Bitmap bp=BitmapFactory.decodeStream(is);
                    iv_pic.setImageBitmap(bp);
                }{
                    Toast.makeText().show();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

 

猜你在找的Android相关文章