Androidファイル画像アップロードの詳細説明(三)---モードコールバック類
4455 ワード
package com.easyway.fileupload;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.ContentResolver;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
/**
* Activity
*
* @Title:
* @Description: TODO
* @Copyright:Copyright (c) 2011
* @Company:
* @Date:2012-7-2
* @author longgangbai
* @version 1.0
*/
public class AndroidUploadFilesActivity extends Activity implements OnClickListener{
private static final String TAG = "uploadImage";
private Button selectImage,uploadImage;
private ImageView imageView;
private String picPath = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
selectImage = (Button) this.findViewById(R.id.selectImage);
uploadImage = (Button) this.findViewById(R.id.uploadImage);
selectImage.setOnClickListener(this);
uploadImage.setOnClickListener(this);
imageView = (ImageView) this.findViewById(R.id.imageView);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.selectImage:
/***
* android intent, ,
*/
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
//
startActivityForResult(intent, RESULT_CANCELED);
break;
case R.id.uploadImage:
if(picPath!=null&&picPath.length()>0)
{
UploadFileTask uploadFileTask=new UploadFileTask(this);
uploadFileTask.execute(picPath);
}
break;
default:
break;
}
}
/**
*
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode==Activity.RESULT_OK)
{
/**
* ,
*/
Uri uri = data.getData();
Log.e(TAG, "uri = "+ uri);
try {
String[] pojo = {MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery(uri, pojo, null, null,null);
if(cursor!=null)
{
ContentResolver cr = this.getContentResolver();
int colunm_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String path = cursor.getString(colunm_index);
/***
* , : , , ,
* ,
*/
if(path.endsWith("jpg")||path.endsWith("png"))
{
picPath = path;
Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));
imageView.setImageBitmap(bitmap);
}else{
alert();
}
}else{
alert();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
*/
super.onActivityResult(requestCode, resultCode, data);
}
private void alert()
{
Dialog dialog = new AlertDialog.Builder(this)
.setTitle(" ")
.setMessage(" ")
.setPositiveButton(" ",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
picPath = null;
}
})
.create();
dialog.show();
}
}