前言
现在的APP基本都有个人资料的填写,基本的都有头像的选择,支持拍照和从本地相册选择,剪切圆形头像的功能,现在用个小demo实现以下。
下面看一下效果图
上代码:
主界面代码
package com.example.androidpersonal_icon;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import java.io.File;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
public class MainActivity extends Activity {
protected static final int CHOOSE_PICTURE = 0;
protected static final int TAKE_PICTURE = 1;
private static final int CROP_SMALL_PICTURE = 2;
protected static Uri tempUri;
private ImageView iv_personal_icon;
private SelectPicPopupWindow menuWindow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 新建一个用来存储照片的文件夹
File destDir = new File(Environment.getExternalStorageDirectory() + "/AndroidPersonal_icon");
if (!destDir.exists()) {
destDir.mkdirs();
}
iv_personal_icon = (ImageView) findViewById(R.id.iv_personal_icon);
iv_personal_icon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 实例化SelectPicPopupWindow
menuWindow = new SelectPicPopupWindow(MainActivity.this, itemsOnClick);
// 显示窗口
menuWindow.showAtLocation(MainActivity.this.findViewById(R.id.main),
Gravity.BOTTOM | Gravity.CENT