public class MainActivity extends Activity implements OnClickListener { private ImageView img; private PopupWindow pop; private View view; private Button xiangce; private Button xiangji; private View parent; private String path = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); img = (ImageView) findViewById(R.id.img); // 得到Popupwindow的弹框view view = View.inflate(this, R.layout.popupwindow, null); // 得到父布局 parent = View.inflate(this, R.layout.activity_main, null); xiangce = (Button) view.findViewById(R.id.xiangce); xiangji = (Button) view.findViewById(R.id.xiangji); pop = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); // 设置焦点 pop.setFocusable(true); // 设置外部点击可以关闭 pop.setOutsideTouchable(true); pop.setBackgroundDrawable(new BitmapDrawable()); // 设置可以点击 pop.setTouchable(true); img.setOnClickListener(this); xiangce.setOnClickListener(this); xiangji.setOnClickListener(this); // 判断Sd卡是否可用 if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { File file = Environment.getExternalStorageDirectory(); path = file.getAbsolutePath() + "/text.jpg"; } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.img:// 点击头像弹出popupwindow,相对于父容器,在父容器的最下方 pop.showAtLocation(parent, Gravity.BOTTOM, 0, 0); break; case R.id.xiangce:// 打开图库 Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); startActivityForResult(intent, 300); break; case R.id.xiangji:// 打开相机 Intent intent2 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); File file = new File(path); intent2.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); startActivityForResult(intent2, 200); break; default: break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { if (requestCode == 300) { // 得到图片内容 Uri uri = data.getData(); // 裁剪图片 caijian(uri); // img.setImageURI(uri); } else if (requestCode == 500) { Bitmap bitmap = data.getParcelableExtra("data"); img.setImageBitmap(bitmap); // 修改完照片以后把popupwindow弹窗关闭 pop.dismiss(); } else if (requestCode == 200) { File file = new File(path); Uri uri = Uri.fromFile(file); caijian(uri); } } } private void caijian(Uri uri) { Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "image/*"); intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); intent.putExtra("outputX", 200); intent.putExtra("outputY", 300); intent.putExtra("return-data", true); startActivityForResult(intent, 500); }
相册和相机,照片可以裁剪,点击头像弹出pop弹窗
最新推荐文章于 2018-11-09 16:50:19 发布