查看网络图片功能
来源:互联网 发布:怎么学java编程基础 编辑:程序博客网 时间:2024/06/06 01:39
通过EditText实现查看网络图片功能。
首先编写主布局activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <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="@string/address" android:maxLines="1" /> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="click" android:text="浏览" /></LinearLayout>编写MainActivity.java:
public class MainActivity extends AppCompatActivity { protected static final int CHANGE_UI = 1; protected static final int ERROR = 2; private EditText et_path; private ImageView 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, "显示图片错误", Toast.LENGTH_SHORT).show(); } }; }; 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); } 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() { //创建一个新的线程 new Runnable()可以省略 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 实验——实现查看网络图片功能
- 图片查看功能封装
- 网络图片查看
- 网络图片查看器
- 网络图片查看器
- 查看网络图片
- 网络图片查看器
- 网络图片查看器
- 网络图片查看器
- *******************网络图片查看器*************
- 网络图片查看器
- 网络图片查看器
- Android查看网络图片
- 网络图片查看器
- 网络图片查看
- 在社交媒体上实现共享文件nativescript-angular应用
- Caffe学习:Forward and Backward
- JavaScript实现十种经典排序算法(js排序算法)
- Android四大组件--Activity详解(二)
- 如何制作9妹图
- 查看网络图片功能
- JDOM解析
- Android
- 第十六周:( LeetCode606) Construct String from Binary Tree(c++)
- centos6/7 装 ant
- 轮播图插件swiper
- liunx 环境下安装JDK1.8
- 正则表达式手记
- 数据库期末复习(6-9章)