请检查和解释以下代码@Override @SuppressLint("SetTextI18n") protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); ImageView img_result=(ImageView) findViewById(R.id.pic); switch (requestCode) { case TAKE_PHOTO: if (resultCode == RESULT_OK) { //将图片解析成Bitmap对象,并把它显现出来 //String filePath = getFilesDir().getAbsolutePath()+"/image.jpeg"; //bitmap = BitmapFactory.decodeFile(filePath); //注意bitmap,后面再decode就会为空 try { bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri)); } catch (FileNotFoundException e) { e.printStackTrace(); } //bitmap = BitmapFactory.decodeFile(picpath); picpath=imageUri.getPath().toString(); Log.e("", imageUri.getAuthority()); Log.e("picpath",picpath); @SuppressLint("SdCardPath") String fileName = picpath; img_result.setImageBitmap(bitmap); img_result.invalidate(); } break; case SCAN_OPEN_PHONE: if (resultCode == RESULT_OK){ Uri selectImage=data.getData(); String[] FilePathColumn={MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolver().query(selectImage, FilePathColumn, null, null, null); cursor.moveToFirst(); //从数据视图中获取已选择图片的路径 int columnIndex = cursor.getColumnIndex(FilePathColumn[0]); picpath = cursor.getString(columnIndex); Log.e("picpath",picpath); cursor.close(); bitmap = BitmapFactory.decodeFile(picpath); img_result.setImageBitmap(bitmap); img_result.invalidate(); } break; default: break; } //处理图像数据,以上传到mysql ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); piccjg = baos.toByteArray(); }
时间: 2023-04-07 22:03:07 浏览: 174
这是一段Android代码,用于处理拍照和选择相册图片后的操作。在拍照或选择相册图片后,会将图片解析成Bitmap对象,并将其显示在ImageView中。最后,将Bitmap对象压缩成JPEG格式的字节数组,以便上传到MySQL数据库。
相关问题
@Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case BleService.CODE_DISCOVERABLE: // 否是0 Log.d(TAG, "onActivityResult: 蓝牙检测开启结果" + resultCode); if (resultCode > 0) { // 执行蓝牙搜索 startSearch(); } else { // 选择了否,不需要多余的提示 //failed(); } break; default: break; } }
这是一个Android应用程序中的onActivityResult方法。在该方法中,根据requestCode来处理返回的结果。在此代码中,当requestCode为BleService.CODE_DISCOVERABLE时,根据resultCode的值来判断是否成功打开了蓝牙,如果成功则执行startSearch方法,否则不进行任何操作。该方法的作用是处理调用startActivityForResult方法时返回的结果,通常用于与其他Activity交互。
@Override protected void onActivityResult(int requestCode, int resultCode,Intent data){ super.onActivityResult(requestCode,resultCode,data); if(data !=null){ if(requestCode==1){ if(resultCode==1){ ItemInfo info = (ItemInfo) data.getSerializableExtra("game"); updateProgress(info); } } } } private void updateProgress(ItemInfo info){ game.setText(info.getName()); } }
这段代码是一个 Android 应用程序中的 onActivityResult() 方法和 updateProgress() 方法。当 startActivityForResult() 方法被调用并且它的结果被返回时,onActivityResult() 方法将被调用。它将 requestCode、resultCode 和 data 作为参数传入。如果 data 不为 null,它将从中获取名为 "game" 的 SerializableExtra,并将其传递给 updateProgress() 方法。updateProgress() 方法将获取的 ItemInfo 对象的名字设置为一个名为 game 的 TextView 组件的文本属性。这个 TextView 可能是应用程序用户界面的一部分,用于显示游戏的进度信息。
阅读全文