//popuwindow方法
public class MainActivity extends Activity implements OnClickListener {
private ImageView img_view;
private Button btn_icon;
private PopupWindow popupWindow;
private View parent;
private Button btn_xiangce;
private Button btn_paizhao;
private String path = Environment.getExternalStorageDirectory()+"/head.jpg";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
parent = View.inflate(MainActivity.this, R.layout.activity_main, null);
//初始化控件
img_view = (ImageView) findViewById(R.id.img_view);
btn_icon = (Button) findViewById(R.id.btn_icon);
//创建popupwindow对象
View contentView = View.inflate(MainActivity.this, R.layout.pop_layout, null);
popupWindow = new PopupWindow(contentView, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
popupWindow.setTouchable(true);
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(true);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
//通过popupwindow的视图对象去找到里面的控件
btn_xiangce = (Button) contentView.findViewById(R.id.btn_xiangce);
btn_paizhao = (Button) contentView.findViewById(R.id.btn_paizhao);
//点击按钮,,弹出popupwindow
btn_icon.setOnClickListener(this);
btn_xiangce.setOnClickListener(this);
btn_paizhao.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_icon:
//显示popupwindow
popupWindow.showAtLocation(parent, Gravity.BOTTOM, 0, 0);
break;
case R.id.btn_xiangce:
//打开相册
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, 99);
//关闭窗口
popupWindow.dismiss();
break;
case R.id.btn_paizhao:
//打开相机
Intent intent2 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent2.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(path)));
startActivityForResult(intent2, 89);
//关闭窗口
popupWindow.dismiss();
break;
default:
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 99 && resultCode == RESULT_OK) {
//裁剪
crop(data.getData());
}
if (requestCode == 100 && resultCode == RESULT_OK) {
//获取裁剪以后的图片
Bitmap bitmap = data.getParcelableExtra("data");
img_view.setImageBitmap(bitmap);
}
if (requestCode == 89 && resultCode == RESULT_OK) {
Uri uri = Uri.fromFile(new File(path));
crop(uri);
}
}
/*
* 裁剪的方法
*/
private void crop(Uri data) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(data, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 251);
intent.putExtra("outputY", 251);
intent.putExtra("return-data", true);
startActivityForResult(intent, 100);
}
}
——————————————————————————————————
//Dialog方法
public class WoFragment extends Fragment implements OnClickListener {
private ImageView img_view;
private View view;
private Builder builder;
private AlertDialog alertDialog;
private View diogView;
private Button btn_paizhao;
private TextView txtView;
private Button btn_xiangce;
private String path=Environment.getExternalStorageDirectory()+"/head.jpg";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
view = inflater.inflate(R.layout.fragment_wode, container,false);
img_view = (ImageView) view.findViewById(R.id.img_view);
txtView = (TextView) view.findViewById(R.id.txtView);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
//添加点击事件
img_view.setOnClickListener(this);
}
private void creatediog() {
// TODO Auto-generated method stub
builder = new AlertDialog.Builder(getActivity());
alertDialog = builder.create();
alertDialog.setTitle(“请选择”);
diogView = View.inflate(getActivity(), R.layout.dialog_layout, null);
alertDialog.setView(diogView);
btn_paizhao = (Button) diogView.findViewById(R.id.btn_paizhao);
btn_xiangce = (Button) diogView.findViewById(R.id.btn_xiangce);
btn_paizhao.setOnClickListener(this);
btn_xiangce.setOnClickListener(this);
alertDialog.show();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==89) {
Crop(Uri.fromFile(new File(path)));
}
if (requestCode==99) {
Crop(data.getData());
}
if (requestCode==100) {
img_view.setImageBitmap((Bitmap)data.getParcelableExtra("data"));
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.img_view:
creatediog();
break;
case R.id.btn_paizhao:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(path)));
startActivityForResult(intent, 89);
alertDialog.dismiss();
break;
case R.id.btn_xiangce:
Intent intent2 = new Intent(Intent.ACTION_PICK);
intent2.setType("image/*");
startActivityForResult(intent2, 99);
alertDialog.dismiss();
break;
default:
break;
}
}
private void Crop(Uri data) {
// TODO Auto-generated method stub
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(data, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 251);
intent.putExtra("outputY", 251);
intent.putExtra("return-data", true);
startActivityForResult(intent, 100);
}
}