從網路上用HTTP下載圖片
使用HTTP傳輸協議從網路上下載圖片並把它顯示出來
1.修改AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.getimage"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".getimage"
android:label="@string/app_name">
<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"/>
</manifest>
2.修改main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:id="@+id/path"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="http://i0.itc.cn/20101105/3ab_77a0625b_5eac_4b59_8b41_88530b0ec2f7_2.jpg"
/>
<Button
android:id="@+id/getimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="抓取圖片"
/>
<ImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
3.修改getimage.java
package com.getimage;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import com.getimage.utils.GetData;
public class getimage extends Activity implements OnClickListener {
private EditText edittext = null;
private Button button = null;
private ImageView imageview = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
edittext = (EditText) findViewById(R.id.path);
button = (Button) findViewById(R.id.getimage);
button.setOnClickListener( this);
imageview = (ImageView) findViewById(R.id.imageview);
}
@Override
public void onClick(View button) {
// TODO Auto-generated method stub
String urlpath = edittext.getText().toString();
try {
byte[] data = GetData.getStream(urlpath);
Bitmap bm = BitmapFactory.decodeByteArray(data, 0, data.length);
imageview.setImageBitmap(bm);
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.建立GetData.java
package com.getimage.utils;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class GetData {
public static byte[] getStream(String urlpath) throws Exception {
InputStream inputstream;
URL url = new URL(urlpath);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
inputstream = conn.getInputStream();
ByteArrayOutputStream outputstream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = -1;
while((len = inputstream.read(buffer)) != -1){
outputstream.write(buffer,0,len);
}
inputstream.close();
outputstream.close();
return outputstream.toByteArray();
}
}
留言列表