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, PHOTO_REQUEST_GALLERY);
startActivityForResult(intent, RESULT_CANCELED);
break;
case R.id.uploadImage:
if(picPath!=null&&picPath.length()>0)
{
InformationHelper inforHelper = (InformationHelper)(getApplicationContext());
Log.w("picPath is :", picPath);
HashMap<String, String> itemInformationMap = new HashMap<String, String>();
itemInformationMap.put("Title", inforHelper.GetTitle());
itemInformationMap.put("Price", inforHelper.GetPrice());
itemInformationMap.put("Description", inforHelper.GetDescription());
itemInformationMap.put("Category", inforHelper.GetCategory());
itemInformationMap.put("UserId", String.valueOf(inforHelper.GetUserId()));
itemInformationMap.put("picPath", picPath);
UploadFileTask uploadFileTask=new UploadFileTask(this);
uploadFileTask.execute(itemInformationMap);
Intent intentUpload = new Intent();
intentUpload.setClass(AndroidUploadFilesActivity.this, AllActivity.class);
startActivity(intentUpload);
}
break;
default:
break;
}
}
/**
* 回调执行的方法
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case PHOTO_REQUEST_GALLERY:
if (data != null) {
startPhotoZoom(data.getData(), 150);
}
break;
case PHOTO_REQUEST_CUT:
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 startPhotoZoom(Uri uri, int size) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
// crop为true是设置在开启的intent中设置显示的view可以剪裁
intent.putExtra("crop", "true");
// aspectX aspectY 是宽高的比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// outputX,outputY 是剪裁图片的宽高
intent.putExtra("outputX", size);
intent.putExtra("outputY", size);
intent.putExtra("return-data", true);
startActivityForResult(intent, PHOTO_REQUEST_CUT);
}
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();
}
为什么图片不能显示出来???逻辑哪里有问题?求大牛指导!!