package visizen.com.imageviewer;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
public class MainActivity extends AppCompatActivity {
public static final int HTTPSTATUSERROR = 1;//返回状态不正确
private static final int URLERROR = 2;//不能创建URL
private static final int SETIMG = 3;//设置缓存图片
EditText et;
ImageView imageView;
public static final int IMAGEURLEMPTY=0;//图片地址不能为空!
File file;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case MainActivity.IMAGEURLEMPTY:
Toast.makeText(MainActivity.this,"图片地址不能为空!",Toast.LENGTH_LONG).show();
break;
case MainActivity.HTTPSTATUSERROR:
Toast.makeText(MainActivity.this,"返回状态不正确!",Toast.LENGTH_LONG).show();
break;
case MainActivity.URLERROR:
Toast.makeText(MainActivity.this,"不能创建URL!",Toast.LENGTH_LONG).show();
break;
case MainActivity.SETIMG:
imageView.setImageURI(Uri.fromFile(file));
et.setText("vvvvvvvvvv");
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.imageView);
}
public void ViewImage(View view) {
new Thread(new Runnable() {
@Override
public void run() {
et = (EditText) MainActivity.this.findViewById(R.id.editText);
String path = et.getText().toString().trim();
if (TextUtils.isEmpty(path)) {
Message msg = new Message();
msg.what=IMAGEURLEMPTY;
MainActivity.this.handler.sendMessage(msg);
return;
}
int start = path.lastIndexOf("/");
file = new File(Environment.getExternalStorageDirectory(),path.substring(start + 1));
if(file.exists()&&file.length()>0){
Message msg = new Message();
msg.what=SETIMG;
MainActivity.this.handler.sendMessage(msg);
}
try {
URL url = new URL(path);
URLConnection urlConnection = url.openConnection();
HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection;
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setConnectTimeout(5000);
int responseCode = httpURLConnection.getResponseCode();
if (responseCode == 200) {
InputStream inputStream = httpURLConnection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
//缓存图片
FileOutputStream stream=new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG,100,stream);
imageView.setImageBitmap(bitmap);
stream.close();
} else {
Message msg = new Message();
msg.what=HTTPSTATUSERROR;
MainActivity.this.handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
Message msg = new Message();
msg.what=URLERROR;
MainActivity.this.handler.sendMessage(msg);
}
}
}).start();
}
}