1. ホーム
  2. java

[解決済み] Getting error : cannot resolve method getResource()

2022-02-28 21:25:06

質問

で画像を共有しようとしています。 Intent.ACTION_SEND が、このエラーが発生します。

getResource() メソッドを解決できない

これは、私が画像を共有しようとしているコードです。

            File root = android.os.Environment.getExternalStorageDirectory();
            File dir = new File (root.getAbsolutePath() + "/myFolder");
            dir.mkdirs(); // build directory
            Random generator = new Random();
            int n = 10000;
            n = generator.nextInt(n);
            String fileName = "Image-"+ n +".jpg";
            File file = new File(dir, fileName);
            if (file.exists ()) file.delete ();

            try {
                FileOutputStream outStream = new FileOutputStream(file);
                InputStream is;
                Bitmap bitmap;
                is = this.getResources().openRawResource(R.drawable.image1);
                bitmap = BitmapFactory.decodeStream(is);
                try {
                    is.close();
                    is = null;
                } catch (IOException e) {
                }
                bitmap.compress(Bitmap.CompressFormat.JPEG, 90, outStream);
                outStream.flush();
                outStream.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            Uri outputFileUri = Uri.fromFile(file);
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            intent.setType("image/jpeg");
            intent.putExtra(Intent.EXTRA_STREAM, outputFileUri);
            startActivity(Intent.createChooser(intent, "Share this image via"));

解決方法は?

フラグメントを使用する場合。

getActivity().getResources();

または試してみてください。

getApplicationContext().getResources();

アクティビティであっても、インナークラスであれば this をこの行の中に入れてください。

is = this.getResources().openRawResource(R.drawable.image1);

へ。

is = Your_Activity_Class_Name.this.getResources().openRawResource(R.drawable.image1);