package com.ldxy.letsgoo; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import org.apache.http.Header; import com.app.function.Configuration; import com.app.function.UserInfo; import com.app.tools.ExitApplication; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.AsyncHttpResponseHandler; import com.loopj.android.http.RequestParams; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.Toast; @SuppressLint("ShowToast") public class Register_sec extends Activity { private ImageView register_back; private ImageView takephoto; /* 头像名称 */ private static final String PHOTO_FILE_NAME = "temp_photo.jpg"; private static final int PHOTO_REQUEST_CAMERA = 1;// 拍照 private File tempFile; private static Integer user_id; protected void onCreate(Bundle savedInstanceState) { ExitApplication.getInstance().addActivity(this); super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_registersec); initView(); initData(); } private void initView() { register_back = (ImageView) this.findViewById(R.id.register_back2); takephoto = (ImageView) this.findViewById(R.id.register_takephoto); } private void initData() { user_id=UserInfo.user.getUser_id(); register_back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Register_sec.this.finish(); } }); takephoto.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { camera(v); } }); } /* * 上传图片 */ @SuppressLint("ShowToast") public void upload(File file) { RequestParams params = new RequestParams(); try { params.put("user_id",user_id); params.put("checkpicture", file); } catch (FileNotFoundException e1) { e1.printStackTrace(); } String url = Configuration.uploadimageUrl; AsyncHttpClient client = new AsyncHttpClient(); client.post(url, params, new AsyncHttpResponseHandler() { @SuppressLint("ShowToast") @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { try { if (statusCode == 200) { Toast.makeText(Register_sec.this, "照片上传成功!", 1).show(); Intent intent = new Intent(Register_sec.this,Register_thir.class); Register_sec.this.startActivity(intent); } else { Toast.makeText(Register_sec.this, "网络访问异常,请重试", 1).show(); } } catch (Exception e) { e.printStackTrace(); Toast.makeText(Register_sec.this, "照片上传失败,请重试!" + statusCode, 1).show(); } } @Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { Toast.makeText(Register_sec.this, "网络访问异常,请重试", 1).show(); } }); } /* * 从相机获取 */ public void camera(View view) { Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); // 判断存储卡是否可以用,可用进行存储 if (hasSdcard()) { intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment .getExternalStorageDirectory(), PHOTO_FILE_NAME))); } startActivityForResult(intent, PHOTO_REQUEST_CAMERA); } private boolean hasSdcard() { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { return true; } else { return false; } } @SuppressLint("ShowToast") @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PHOTO_REQUEST_CAMERA) { if (hasSdcard()) { tempFile = new File(Environment.getExternalStorageDirectory(), PHOTO_FILE_NAME); upload(scaleImage(tempFile)); } else { Toast.makeText(Register_sec.this, "未找到存储卡,无法存储照片!", 1).show(); } } super.onActivityResult(requestCode, resultCode, data); } private File scaleImage(File file) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; options.inSampleSize=1; BitmapFactory.decodeFile(file.getPath(), options); int width = options.outWidth; int height = options.outHeight; int resHeight = 800; int resWidth = 480; if (width > resWidth || height > resHeight) { final int scaleWidth = Math.round(((float) resWidth) / (float) width); final int scaleHeight = Math.round(((float) resHeight) / (float) height); options.inSampleSize = scaleHeight < scaleWidth ? scaleHeight : scaleWidth; } options.inJustDecodeBounds = false; Bitmap bm =BitmapFactory.decodeFile(file.getPath(), options); String dir = Environment.getExternalStorageDirectory() .getAbsolutePath() + "/LDXY/Camera/userIdentify/"; file = new File(dir); if (!file.exists()) { // 如果文件不存在,会创建相应文件夹 file.mkdirs(); } File picture = new File(file, "user_identify.jpg"); try { BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream(picture)); bm.compress(Bitmap.CompressFormat.JPEG, 60, bos); bos.flush(); bos.close(); } catch (IOException e) { e.printStackTrace(); } return picture; } }