2023年7月15日发(作者:)
Android仿IOS选择拍照相册底部弹出框弹出框.jpg1.依赖dependencies { compile ':actionsheet:1.0'}2.代码//1.实现接⼝ implements onSheetSelected//2.在某个点击事件中添加: eet(this, this, null);//3.然后重写点击⽅法:@Override public void onClick(int whichButton) { switch (whichButton) { case _PICTURE: //相册 choosePic(); break; case _PICTURE: //拍照 takePic(); break; case : //取消 break; } }
//加⼊⾃⼰的逻辑//去寻找是否已经有了相机的权限 if (elfPermission(, ) == SION_GRANTED) { //xt(,"您申请了动态权限",_SHORT).show(); //如果有了相机的权限有调⽤相机 Intent intent = new Intent("_CAPTURE"); // 判断存储卡是否可以⽤,可⽤进⾏存储 if (hasSdcard()) { ra(_OUTPUT, le(new File(ernalStorageDirectory(), ".jpg"))); } startActivityForResult(intent, 2); } else { //否则去请求相机权限 tPermissions(, new String[]{}, 100); //如果有了相机的权限有调⽤相机 Intent intent = new Intent("_CAPTURE"); // 判断存储卡是否可以⽤,可⽤进⾏存储 if (hasSdcard()) { ra(_OUTPUT, le(new File(ernalStorageDirectory(), ".jpg"))); } startActivityForResult(intent, 2); }//加⼊⾃⼰的逻辑private void choosePic() { Intent intent = new Intent(_PICK, AL_CONTENT_URI); startActivityForResult(intent, 1); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { vityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == RESULT_OK) { Uri data1 = a(); geURI(data1); if (ActionSheet.){ } } if (requestCode == 2 && resultCode == RESULT_OK) { if (hasSdcard()) { File tempFile = new File(ernalStorageDirectory(), ".jpg"); Uri uri = le(tempFile); geURI(uri); } else { xt(, "未找到存储卡,⽆法存储照⽚!", _SHORT).show(); } } } private boolean hasSdcard() { return ernalStorageState().equals(_MOUNTED); }3.源码public class ActionSheet { public static final int CHOOSE_PICTURE = 100; public static final int TAKE_PICTURE = 200; public static final int CANCEL = 300; public interface OnActionSheetSelected { void onClick(int whichButton); } public ActionSheet() { } public static Dialog showSheet(Context context, final OnActionSheetSelected actionSheetSelected, OnCancelListener cancelListener) { final Dialog dialog = new Dialog(context, Sheet); LayoutInflater inflater = (LayoutInflater) temService(_INFLATER_SERVICE); LinearLayout layout = (LinearLayout) e(_action_sheet, null); LinearLayout layout = (LinearLayout) e(_action_sheet, null); final int cFullFillWidth = 10000; imumWidth(cFullFillWidth); TextView picTextView = (TextView) ewById(tView); TextView camTextView = (TextView) ewById(tView); TextView cancelTextView = (TextView) ewById(TextView); lickListener(new OnClickListener() { @Override public void onClick(View v) { k(CHOOSE_PICTURE); s(); } }); lickListener(new OnClickListener() { @Override public void onClick(View v) { k(TAKE_PICTURE); s(); } }); lickListener(new OnClickListener() { @Override public void onClick(View v) { k(CANCEL); s(); } }); Window window = dow(); Params lp = ributes(); lp.x = 0; final int cMakeBottom = -1000; lp.y = cMakeBottom; y = ; owAttributesChanged(lp); celedOnTouchOutside(true); if (cancelListener != null) ancelListener(cancelListener); tentView(layout); (); return dialog; }}
发布者:admin,转转请注明出处:http://www.yc00.com/web/1689430423a246997.html
评论列表(0条)