初学Android——通过URL加载图片
来源:互联网 发布:淘宝店铺怎么申请域名 编辑:程序博客网 时间:2024/05/28 15:28
首先是框架:
<ImageView android:id="@+id/iv" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" /> <EditText android:id="@+id/et_path" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="请输入图片路径" android:text="http://b.hiphotos.baidu.com/image/w%3D310/sign=a439f5b24510b912bfc1f0fff3fdfcb5/83025aafa40f4bfb92c52c5d014f78f0f73618a5.jpg" android:maxLines="1" /> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="click" android:text="浏览" />创建一个进程:protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_path = (EditText) findViewById(R.id.et_path); iv = (ImageView) findViewById(R.id.iv);
主线程创建消息处理器:private Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { if(msg.what == CHANGE_UI){ Bitmap bitmap = (Bitmap) msg.obj; iv.setImageBitmap(bitmap); }else if(msg.what == ERROR){ Toast.makeText(MainActivity.this, "显示图片错误", 0).show(); } }; };创建点击事件以及子线程;public void click(View view) { final String path = et_path.getText().toString().trim(); if (TextUtils.isEmpty(path)) { Toast.makeText(this, "图片路径不能为空", Toast.LENGTH_SHORT).show(); } else { //子线程请求网络,Android4.0以后访问网络不能放在主线程中 new Thread() { public void run() { // 连接服务器 get 请求 获取图片. try { URL url = new URL(path); //创建URL对象 // 根据url 发送 http的请求. HttpURLConnection conn = (HttpURLConnection) url .openConnection(); // 设置请求的方式 conn.setRequestMethod("GET"); //设置超时时间 conn.setConnectTimeout(5000); // 得到服务器返回的响应码 int code = conn.getResponseCode(); //请求网络成功后返回码是200 if (code == 200) { //获取输入流 InputStream is = conn.getInputStream(); //将流转换成Bitmap对象 Bitmap bitmap = BitmapFactory.decodeStream(is); //iv.setImageBitmap(bitmap); //TODO: 告诉主线程一个消息:帮我更改界面。内容:bitmap Message msg = new Message(); msg.what = CHANGE_UI; msg.obj = bitmap; handler.sendMessage(msg); } else { //返回码不是200 请求服务器失败 Message msg = new Message(); msg.what = ERROR; handler.sendMessage(msg); } } catch (Exception e) { e.printStackTrace(); Message msg = new Message(); msg.what = ERROR; handler.sendMessage(msg); } }; }.start(); }
实现功能。
阅读全文
0 0
- 初学Android——通过URL加载图片
- 初学安卓-通过URL加载网络图片
- Android 通过子线程加载URL图片
- Android URL访问网络资源,通过URL加载网络图片
- android:通过URL加载ImageView
- android:通过URL加载ImageView
- Android通过URL查看图片
- Android 实现通过url加载PDF
- Android通过url获取bitmap图片问题
- android通过url读取网络图片
- Android通过URL读取网络图片
- android通过url读取网络图片
- Android中通过url获取图片Bitmap
- Android开发通过Glide显示url图片
- android ListView 多线程异步加载Url图片
- android.os.NetworkOnMainThreadException,Android根据图片URL加载图片
- android图片加载—二级缓存
- Android 通过URI加载网络图片bitmap
- 【Android编程架构】多Item类型的RecyclerView替代scrollView
- oracle数据库简单笔记整理
- 强制DataNode向NameNode上报blocks
- MySQL中DATETIME、DATE和TIMESTAMP类型的区别
- 模拟:HDU1034-Candy Sharing Game
- 初学Android——通过URL加载图片
- Apache Commons DbUtils使用手册
- MyEclipse常用快捷键
- Java 自带的线程池Executors.newFixedThreadPool
- [转]Run-Time Check Failure #2分析
- 微信小程序 wx:if 与 hidden区别
- JavaScript中=+的意思
- Continuous Multi-Step TD, Eligibility Traces and TD(λ): A brief note
- Android 螺旋水平进度条 progressbar