【问题标题】:convert java to kotlin [duplicate]将java转换为kotlin [重复]
【发布时间】:2021-02-03 23:38:36
【问题描述】:

我需要以高质量捕获和存储图像,并使用 kotlin 以高质量上传。我在 kotlin 中找不到任何示例,但在 java 中找到了一个,但想将其转换为 kotlin,以便它可以与我的应用程序一起使用。

public void clickFoto(View view) {
        takePic();
    }

//takePic()

 private void takePic() {
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        *File file = new File(Environment.getExternalStorageDirectory(), "/your_name_folder/a" + "/photo_" + timeStamp + ".png");*
        imageUri = Uri.fromFile(file);

        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
        startActivityForResult(intent, PICTURE_RESULT);
    }

//onActivityResult

public void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {

            case PICTURE_RESULT:
                if (requestCode == PICTURE_RESULT)
                    if (resultCode == Activity.RESULT_OK) {
                        try {
                            Bitmap thumbnail = MediaStore.Images.Media.getBitmap(
                                    getContentResolver(), imageUri);
                            imgFoto.setImageBitmap(thumbnail);
                            imageurl = getRealPathFromURI(imageUri);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }

                    }
        }
    }

// getRealPathFromUri

public String getRealPathFromURI(Uri contentUri) {
        String[] proj = {MediaStore.Images.Media.DATA};
        Cursor cursor = managedQuery(contentUri, proj, null, null, null);
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    }

【问题讨论】:

  • 如果您安装了 intelliJ IDE,创建一个 kotlin 项目或文件并将 java 代码粘贴到 kotlin 文件中,intelliJ 会询问您是否应该将其转换为 kotlin,选择是。 Java 源代码将转换为 kotlin

标签: java android kotlin


【解决方案1】:

您可以在 Android Studio 中找到将 Java 转换为 Kotlin 文件的菜单(Ctrl + Shift + Alt+ K)。

无论如何,使用转换,您的代码将是这样的。

fun clickFoto(view:View) {
  takePic()
}

private fun takePic() {
  val timeStamp = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())
  val file = File(Environment.getExternalStorageDirectory(), "/your_name_folder/a" + "/photo_" + timeStamp + ".png")
  imageUri = Uri.fromFile(file)
  val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
  intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri)
  startActivityForResult(intent, PICTURE_RESULT)
}


fun onActivityResult(requestCode:Int, resultCode:Int, data:Intent) {
  when (requestCode) {
    PICTURE_RESULT -> if (requestCode == PICTURE_RESULT)
    if (resultCode == Activity.RESULT_OK)
    {
      try
      {
        val thumbnail = MediaStore.Images.Media.getBitmap(
          getContentResolver(), imageUri)
        imgFoto.setImageBitmap(thumbnail)
        imageurl = getRealPathFromURI(imageUri)
      }
      catch (e:Exception) {
        e.printStackTrace()
      }
    }
  }
}

fun getRealPathFromURI(contentUri:Uri):String {
  val proj = arrayOf<String>(MediaStore.Images.Media.DATA)
  val cursor = managedQuery(contentUri, proj, null, null, null)
  val column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA)
  cursor.moveToFirst()
  return cursor.getString(column_index)
}

【讨论】:

    猜你喜欢
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 2019-03-12
    • 2023-02-10
    • 2021-11-13
    • 2018-11-04
    相关资源
    最近更新 更多