import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Environment; import android.provider.MediaStore; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.PopupWindow; import com.facebook.drawee.view.SimpleDraweeView; import java.io.File; import bawei.com.shangchuan.bean.TouBean; import bawei.com.shangchuan.presenter.Presenter; import bawei.com.shangchuan.view.IView; import okhttp3.MediaType; import okhttp3.MultipartBody; import okhttp3.RequestBody; public class MainActivity extends AppCompatActivity implements View.OnClickListener, IView.IViewShang { private SimpleDraweeView sdv; private View view; private ImageView iv; private Uri tempUri; private String name="image.jpg"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); view = LayoutInflater.from(this).inflate(R.layout.popup, null); //找到控件 sdv = findViewById(R.id.main_sdv); Button pan = view.findViewById(R.id.poup_bu1); Button xiang = view.findViewById(R.id.poup_bu2); iv = findViewById(R.id.main_iv); sdv.setOnClickListener(this); pan.setOnClickListener(this); xiang.setOnClickListener(this); } /* * 点击事件 * */ @Override public void onClick(View v) { switch (v.getId()) { case R.id.main_sdv: PopupWindow popupWindow = new PopupWindow(view, 200, 200, true); popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); // 设置PopupWindow是否能响应外部点击事件 popupWindow.setOutsideTouchable(true); popupWindow.showAsDropDown(sdv, 0, 0); break; case R.id.poup_bu1://拍照 Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); tempUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(),name)); // 指定照片保存路径(SD卡),image.jpg为一个临时文件,每次拍照后这个图片都会被替换 openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, tempUri); startActivityForResult(openCameraIntent, 1); break; case R.id.poup_bu2://相册 Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); photoPickerIntent.setType("image/*"); startActivityForResult(photoPickerIntent, 2); break; } } //回调方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1) {//拍照 startPhotoZoom(tempUri); } if (requestCode == 2) {//相册 Uri uri = data.getData(); startPhotoZoom(uri); } if (requestCode == 3) {//裁剪 if (data != null) { showResizeImage(data); } //往接口中上传文件 RequestBody uidBody = RequestBody.create(MediaType.parse("multipart/form-data"),"10794"); File f=new File(Environment.getExternalStorageDirectory(),name); //f为file路径 MultipartBody.Part filePart = MultipartBody.Part.createFormData("file",f.getName(), RequestBody.create(MediaType.parse("multipart/form-data"),f)); //获取上传头像 Presenter presenter=new Presenter(this); presenter.preShang(uidBody,filePart); } } /** * 裁剪图片方法实现 * * @param uri */ protected void startPhotoZoom(Uri uri) { Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "image/*"); intent.putExtra("crop", "true"); intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); intent.putExtra("outputX", 300); intent.putExtra("outputY", 300); intent.putExtra("return-data", true); startActivityForResult(intent, 3); } /* * 显示图片 * */ public void showResizeImage(Intent data) { Bundle extras = data.getExtras(); if (extras != null) { Bitmap bitmap = data.getParcelableExtra("data"); Drawable drawable = new BitmapDrawable(bitmap); iv.setImageDrawable(drawable); } } @Override public void viewSuccess(TouBean touBean) { String code = touBean.getCode(); String msg = touBean.getMsg(); Log.d("哈哈", "viewSuccess: " + code + " " + msg); } @Override public void viewError(String err) { Log.d("哈哈", "viewError: " + err); } }
上传头像
最新推荐文章于 2022-07-27 09:53:55 发布