加载网络图片
来源:互联网 发布:澄海淘宝美工培训 编辑:程序博客网 时间:2024/06/05 16:11
1.首先写一个布局文件,一个ImangeView用于存放图片的位置,放置一个Button控件。
2.在Strings.xml文件中添加要查看图片的地址。
3.当界面创建好后,需要在MainActivity里面编写与界面交互的的代码。用于实现请求网络地址的网络图片,并将服务器返回的图片展示在界面上。在MainActivity.java中创建一个子线程,通过这个子线程来获取图片。
4.查看成功的结果。
activity_main.xml布局文件中的代码:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="cn.edu.bzu.imagebrowser.MainActivity"> <ImageView android:id="@+id/ivImage" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" /> <EditText android:id="@+id/etImageUrl" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:hint="请输入图片的路径" android:text="@string/address" /> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="viewImage" android:text="浏览" /></LinearLayout>
MainActivity.java中的代码:
package cn.edu.bzu.imagebrowser;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.widget.EditText;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends Activity { private EditText etImageUrl; private ImageView ivImage; public static final int SHOWIMAGE=1; public static final int SHOWFAIL=0; // Handler 处理事件 private Handler handler=new Handler(){ public void handleMessage(android.os.Message msg) { switch (msg.what) { case SHOWIMAGE: Bitmap bitmap=(Bitmap) msg.obj; ivImage.setImageBitmap(bitmap); break; case SHOWFAIL: ivImage.setImageResource(R.drawable.button_bg); Toast.makeText(MainActivity.this, "显示图片失败", Toast.LENGTH_LONG).show(); break; default: break; } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); ivImage.setImageResource(R.drawable.button_bg); } // 查找的ID private void initViews() { etImageUrl=(EditText) findViewById(R.id.etImageUrl); ivImage=(ImageView) findViewById(R.id.ivImage); } // 按钮点击事件 public void viewImage(View view){ final String imageUrl=etImageUrl.getText().toString(); if(TextUtils.isEmpty(imageUrl)){ Toast.makeText(this, "图片路径不能为空", Toast.LENGTH_LONG).show(); }else{ new Thread(){ public void run() { try { URL url=new URL(imageUrl); HttpURLConnection httpURLConnection=(HttpURLConnection) url.openConnection(); httpURLConnection.setRequestMethod("GET"); httpURLConnection.setConnectTimeout(5000); int responseCode=httpURLConnection.getResponseCode(); if(responseCode==200){ InputStream inputStream=httpURLConnection.getInputStream(); Bitmap bitmap=BitmapFactory.decodeStream(inputStream); Message message=new Message(); message.what=SHOWIMAGE; message.obj=bitmap; //ivImage.setImageBitmap(bitmap); handler.sendMessage(message); }else{ Message message=new Message(); message.what=SHOWFAIL; handler.sendMessage(message); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); Message message=new Message(); message.what=SHOWFAIL; handler.sendMessage(message); } } }.start(); } }}
清单文件中代码:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.edu.bzu.imagebrowser"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.INTERNET"></uses-permission></manifest>
阅读全文
0 0
- Delphi加载网络图片
- android加载网络图片
- 网络加载图片
- 加载网络图片
- 异步加载网络图片
- SDWebImage 加载网络图片
- 网络图片异步加载
- 异步加载网络图片
- Android加载网络图片
- android加载网络图片
- android 网络加载图片
- 异步加载网络图片
- 网络加载图片
- Flex加载网络图片
- swift 加载网络图片
- 网络加载图片
- ImageView加载网络图片
- 加载显示网络图片
- IntelliJ IDEA中错误提示:java: Syntax error on token "Invalid Character", delete this token
- Android.mk 介绍
- c++创建单链表
- IO流的理解
- 转换流
- 加载网络图片
- SpringBoot项目在Spring Tool Suite中更改默认发布目录为Tomcat
- Struts2数据验证机制
- 修改MySQL数据库引擎为InnoDB
- iptables防火墙原理详解
- 选择法排序
- android自定义view事件分发总结
- Java的native方法
- Android开发进阶—Android中的View