package com.example.dfefewweeee;


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;


import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.Editable;
import android.text.style.URLSpan;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.HttpAuthHandler;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.TextView;
import android.widget.Toast;
import com.example.imglook.R;


public class MainActivity extends Activity {


EditText et_path; 
ImageView iv;

//在主线程中定义一个 handler对像
// private Handler handler = new Handler(){
// //处理消息
// public void handleMessage(Message msg) {
// //把bitmap显示到iv上
// Bitmap bitmap = (Bitmap)msg.obj;
// iv.setImageBitmap(bitmap);
//
// };
// };



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


et_path = (EditText)findViewById(R.id.et_path);
//imageview对像
iv = (ImageView)findViewById(R.id.iv);



}




//点击事件
public void click(View v) throws IOException{

//创建 一个子线程
new Thread(){public void run(){

try {
//2.7.1 缓存图片  创建缓存目录 和 文件名
File file =new File(getCacheDir(),"test.png");
 

if(file.exists() && file.length() > 0){
System.out.println("使用缓存图片");
//使用缓存图片
final Bitmap cackeBitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
 
//这包API 不管你在什么位置上调用action都运在UI线程里
runOnUiThread(new Runnable(){
public void run(){
//把bitmap显示到iv上
iv.setImageBitmap(cackeBitmap);

}
});
 
 
 
//把这个cackBitmap 显示到iv上
// Message msg = Message.obtain();
// msg.obj = cackeBitmap;
// //发消息
// handler.sendMessage(msg);
 
}else{
//第一次访问联网获取数据

System.out.println("第一次主访问连接网洛");
//2 获取访问图片的路经
String path = et_path.getText().toString().trim();
//2.2 创建url对像
URL url = new URL(path);
//2.3 获取httpurlconnection
HttpURLConnection conn  = (HttpURLConnection) url.openConnection();

//2.4 设置请求的方式
conn.setConnectTimeout(5000);
//2.5 获取服务器返回的状态码
int code = conn.getResponseCode();
if(code == 200){
//2.7 获取图片的数据  不管是什么数据(txt文本 图片数 据) 都是以流的形式返回
InputStream in = conn.getInputStream();


FileOutputStream fos = new FileOutputStream(file);
int len = -1;
byte[] buffer = new byte[1024];
while((len = in.read(buffer)) != -1){
//写入文件
fos.write(buffer,0,len);

}
fos.close();
in.close();


//2.8 通过位图工厂获取bitmap(bitmap)位图 bitmap
final Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());

//这包API 不管你在什么位置上调用action都运在UI线程里
runOnUiThread(new Runnable(){
public void run(){
//把bitmap显示到iv上
iv.setImageBitmap(bitmap);

}
});

//2.9  定义message 对像  然后发消息
// Message msg = Message.obtain();
// msg.obj = bitmap;
//
// // 发消息
// handler.sendMessage(msg);
// //把bitmap显示到iv上
}

}

} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


};}.start();


}




}

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. android canmera相机
  3. android 获取屏幕的方向
  4. Android(安卓)vlc 简单使用
  5. android 处理图片的工具类
  6. android 获取wifi 信号质量
  7. Android中GridView来显示图片
  8. Android手机拍照和手机相册选取图片的工具类ImageUtils
  9. Android(安卓)UI技巧(一)——Android中伸缩自如的9patch图片切法,没

随机推荐

  1. mysql运行net start mysql报服务名无效的
  2. mysql中错误:1093-You can’t specify tar
  3. Linux虚拟机下mysql 5.7安装配置方法图文
  4. Mac下mysql5.7.10安装教程
  5. 记录无法安装mysql-Invalid GPG Key from
  6. MySql修改密码后phpMyAdmin无法登陆的解
  7. Mysql5.7.11绿色版安装教程图文详解
  8. mysql “ Every derived table must have
  9. mysql去重的两种方法详解及实例代码
  10. MySQL使用show status查看MySQL服务器状