在线咨询
微信咨询
服务热线
服务热线:15639912513
TOP
当前位置:
首页 > 新闻中心> 安卓课堂>Android实现图片查看器代码

Android实现图片查看器代码

发布时间:2019-11-27 浏览:4274次

Android实现图片查看器代码如下:

public class MainActivity extends Activity implements OnClickListener{


    private EditText et_url;

private Button btn_show;

private ImageView iv_pic;

/**

* 成功获取数据

*/

private final int GET_DATA_SUCESS = 1;

private final int NETWORK_ERROR = 2;

private final int SERVER_ERROR = 3;

private Handler handler = new Handler(){

public void handleMessage(android.os.Message msg) {

switch (msg.what) {

case GET_DATA_SUCESS:

Bitmap bm = (Bitmap) msg.obj;

iv_pic.setImageBitmap(bm);

Toast.makeText(MainActivity.this, "从网络获取数据", Toast.LENGTH_SHORT).show();

break;

case NETWORK_ERROR:

Toast.makeText(MainActivity.this, "网络连接异常", Toast.LENGTH_SHORT).show();

break;

case SERVER_ERROR:

Toast.makeText(MainActivity.this, "服务器返回异常", Toast.LENGTH_SHORT).show();

break;

default:

break;

}

};

};


@Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        

        et_url = (EditText) findViewById(R.id.et_url);

        btn_show = (Button) findViewById(R.id.btn_show);

        iv_pic = (ImageView) findViewById(R.id.iv_pic);

        et_url.setText("http://10.0.2.2:8080/tomcat1.png");

        

        btn_show.setOnClickListener(this);

    }


@Override

public void onClick(View v) {

//

final File file = new File(getCacheDir(),"tomcat.png");

if(file != null&&file.length()>0){

Bitmap bm = BitmapFactory.decodeFile(file.getAbsolutePath());

iv_pic.setImageBitmap(bm);

Toast.makeText(this, "使用缓存", Toast.LENGTH_SHORT).show();

return;

}

new Thread(){

public void run() {

//①获取网址

String path = et_url.getText().toString().trim();

//②联网

try {

URL url = new URL(path);

HttpURLConnection connection = (HttpURLConnection) url.openConnection();

//设置请求方式

connection.setRequestMethod("GET");

//设置连接超时时间

connection.setConnectTimeout(10000);

int code = connection.getResponseCode();

if(code==200){

//获取流

InputStream inputStream = connection.getInputStream();

FileOutputStream fos = new FileOutputStream(file);

int len = -1;

byte buffer[] = new byte[1024];

while((len = inputStream.read(buffer))!=-1){

fos.write(buffer, 0, len);

}

fos.close();

inputStream.close();

//通过流创建一个bitmap对象

//Bitmap bitmap = BitmapFactory.decodeStream(inputStream);

Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());

//iv_pic.setim

//创建消息

Message msg = Message.obtain();

//通过消息携带bitmap在主线程中展示

msg.what = GET_DATA_SUCESS;

msg.obj = bitmap;

//通过handler发送消息给主线程

handler.sendMessage(msg);

}else{

Message msg = Message.obtain();

msg.what = SERVER_ERROR;

handler.sendMessage(msg);

}

} catch (Exception e) {

e.printStackTrace();

Message msg = Message.obtain();

msg.what = NETWORK_ERROR;

handler.sendMessage(msg);

}

//③获取图片

//展示图片

};

}.start();

}



    

}

以上代码包含了查看图片以及下载图片,而下面的java代码主要是查看图片,不是下载图片。

public class MainActivity extends AppCompatActivity {

    private EditText et_url;

    private Button btn_show;

    private ImageView iv_pic;

    private final int GET_DATA_SUCESS = 1;

    private final int NETWORK_ERROR = 2;

    private final int SERVER_ERROR = 3;

    private Handler handler = new Handler(){

        @Override

        public void handleMessage(@NonNull Message msg) {

            switch (msg.what) {

                case GET_DATA_SUCESS:

                    Bitmap bm = (Bitmap) msg.obj;

                    iv_pic.setImageBitmap(bm);

                    Toast.makeText(MainActivity.this, "图片是", Toast.LENGTH_SHORT).show();

                    break;

                case NETWORK_ERROR:

                    Toast.makeText(MainActivity.this, "网址异常", Toast.LENGTH_SHORT).show();

                    break;

                case SERVER_ERROR:

                    Toast.makeText(MainActivity.this, "服务器错误", Toast.LENGTH_SHORT).show();

                    break;

                default:

                    break;

            }

        }

    };

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        et_url = (EditText) findViewById(R.id.et_url);

        btn_show = (Button) findViewById(R.id.btn_show);

        iv_pic = (ImageView) findViewById(R.id.iv_pic);

        et_url.setText("http://192.168.0.100/images/index_banner4.jpg");

        btn_show.setOnClickListener(new MyonClicklistener());

    }


    private class MyonClicklistener implements View.OnClickListener {

        @Override

        public void onClick(View v){

            new Thread(){

              public void run(){

                  String path = et_url.getText().toString().trim();

                  URL url = null;

                  try {

                      url = new URL(path);

                      HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                      connection.setRequestMethod("GET");

                      connection.setConnectTimeout(10000);

                      int code = connection.getResponseCode();

                      if(code==200){

                          InputStream inputStream = connection.getInputStream();

                          Bitmap bitmap = BitmapFactory.decodeStream(inputStream);

                          Message msg = new Message();

                          msg.what = GET_DATA_SUCESS;

                          msg.obj=bitmap;

                          handler.sendMessage(msg);

                          //tv_code.setText(result);

                      }else{

                          Message msg = Message.obtain();

                          msg.what = SERVER_ERROR;

                          handler.sendMessage(msg);

                      }


                  } catch (Exception e) {

                      e.printStackTrace();

                      Message msg = Message.obtain();

                      msg.what = NETWORK_ERROR;

                      handler.sendMessage(msg);

                  }

              }

            }.start();


        }

    }

}


TAG
4274
该内容对我有帮助