import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
public class MainActivity extends Activity {
ImageView mImageView;
static final String FILE_NAME="sxt_logo.png";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
setListener();
}
private void setListener() {
setResetClickListener();
setDecodeFileClickListener();
setDecodeResourceClickListener();
setDecodeStreamClickListener();
setDecodeByteArrayClickListener();
}
private void setDecodeByteArrayClickListener() {
findViewById(R.id.btnDecodeByteArray).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new Thread(){
public void run() {
HttpGet get=new HttpGet("http://10.0.2.2/"+FILE_NAME);
HttpClient client=new DefaultHttpClient();
try {
HttpResponse response = client.execute(get);
HttpEntity entity = response.getEntity();
byte[] data = EntityUtils.toByteArray(entity);
final Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
runOnUiThread(new Runnable() {
@Override
public void run() {
mImageView.setImageBitmap(bitmap);
}
});
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(client!=null){
client.getConnectionManager().shutdown();
}
}
};
}.start();
}
});
}
private void setDecodeStreamClickListener() {
findViewById(R.id.btnDecodeStream).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File file=new File(dir, FILE_NAME);
FileInputStream in=null;
try {
in=new FileInputStream(file);
Bitmap bitmap = BitmapFactory.decodeStream(in);
mImageView.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(in!=null){
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
});
}
private void setDecodeResourceClickListener() {
findViewById(R.id.btnDecodeResource).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mImageView.setImageResource(R.drawable.sxt_logo);
}
});
}
private void setResetClickListener() {
findViewById(R.id.iv).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mImageView.setImageResource(R.drawable.ic_launcher);
}
});
}
private void setDecodeFileClickListener() {
findViewById(R.id.btnDecodeFile).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File file=new File(dir, FILE_NAME);
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
mImageView.setImageBitmap(bitmap);
}
});
}
private void initView() {
mImageView=(ImageView) findViewById(R.id.iv);
}
}