1、养成好习惯,配置字符串资源文件 strings.xml

<?xml version="1.0" encoding="utf-8"?><resources>    <string name="app_name">网络图片查看器</string>    <string name="action_settings">Settings</string>    <string name="hello_world">Hello world!</string><string name="imgpath">输入图片地址:</string><string name="getBtn">获取图片</string><string name="error">获取图片失败</string></resources>


2、布局文件,使用垂直布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent"    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=".MainActivity" >    <TextView         android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="@string/imgpath"        />    <EditText android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:id="@+id/imgpathInput"        android:text="http://avatar.csdn.net/B/E/7/1_gaotong2055.jpg"        android:inputType="text" />    <Button          android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/getBtn"        android:id="@+id/getBtn"        />    <ImageView         android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/imgView"        /></LinearLayout>


3、编写代码

这里为了方便看代码,都写在一个类里面了。

可以把里面的静态方法单独拆分出来,写在一个工具类中,结构更好。

public class MainActivity extends Activity implements OnClickListener {private EditText pathText;private ImageView imageView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);pathText = (EditText) this.findViewById(R.id.imgpathInput);imageView = (ImageView) this.findViewById(R.id.imgView);Button button = (Button) this.findViewById(R.id.getBtn);button.setOnClickListener(this);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic void onClick(View v) {String path = pathText.getText().toString();byte[] data = null;try {data = getImgData(path);} catch (Exception e) {e.printStackTrace();Toast.makeText(this, R.string.error, 1).show();}Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);imageView.setImageBitmap(bitmap);}public static byte[] getImgData(String path) throws Exception {URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(5000);// 超时时间5秒conn.setRequestMethod("GET");if (conn.getResponseCode() == 200) {InputStream in = conn.getInputStream();return read(in);} else {Log.d("tong.getImg", "服务器无响应");}return null;}/** * 从一个输入流中读取数据,并返回 *  * @param in * @return byte[] 数据 * @throws IOException */public static byte[] read(InputStream in) throws IOException {// 开辟一个内存的区域,以写入数据ByteArrayOutputStream outStream = new ByteArrayOutputStream();byte[] buffer = new byte[10240];int len = 0;while ((len = in.read(buffer)) != -1) {outStream.write(buffer, 0, len);}outStream.close();return outStream.toByteArray(); // 返回内存中的数据}}


运行效果:







更多相关文章

  1. android调用系统的相机服务
  2. android socket客户端app
  3. android&&ScaleType android:scaleType="centerCrop"这个属性把
  4. 初探Android中的请求服务器并解析返回的json数据
  5. Android(安卓)根据城市名称获取经纬度
  6. Android高级工程师成长路线
  7. 滚动条~~~xml方式(一)
  8. Android和iOS对矢量图片的支持
  9. android中有关图片的处理

随机推荐

  1. Android性能调优工具TraceView介绍
  2. android中Layoutopt的使用
  3. Android之Wifi学习(1)
  4. 使用User Agent分辨出Android设备类型的
  5. 在 Android(安卓)模拟器中启用摄像头支持
  6. Android之UI学习篇二:TextVeiw显示表情和
  7. Android(安卓)基础总结:(十)ContentResolver
  8. Android中Intent传递对象的两种方法(Seri
  9. Android(安卓)App开发基础篇—四大组件之
  10. Android总结篇系列:Android广播机制