Как программно сохранить файл в локальном хранилище телефона? - PullRequest
3 голосов
/ 17 июня 2020

Я был бы очень рад, если бы кто-нибудь сказал мне, что я делаю не так в коде. Папка не создается, и ошибок нет.

public class MainActivity extends AppCompatActivity {
    private ImageView imageView;
    private Button btn;
    Bitmap bitmap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
        ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
        imageView = findViewById(R.id.image);
        btn = findViewById(R.id.save);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                bitmap=viewToBitmap(imageView,imageView.getWidth(),imageView.getHeight());
                FileOutputStream outputStream;
                File sdCard=Environment.getExternalStorageDirectory();
                File dir=new File(sdCard.getAbsolutePath()+"/Yourfiles");
                dir.mkdir();
                String filename=(String.format("%d.jpg",System.currentTimeMillis()));
                File outfile=new File(dir,filename);
                try {
                    outputStream=new FileOutputStream(outfile);
                    bitmap.compress(Bitmap.CompressFormat.JPEG,100,outputStream);

                    outputStream.flush();
                    outputStream.close();
                    Intent i=new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
                    i.setData(Uri.fromFile(outfile));
                    sendBroadcast(i);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
                catch (IOException e) {
                    e.printStackTrace();
                }



            }
        });
    }
    private static Bitmap viewToBitmap(View view, int widh, int hight)
    {
        Bitmap bitmap=Bitmap.createBitmap(widh,hight, Bitmap.Config.ARGB_8888);
        Canvas canvas=new Canvas(bitmap); view.draw(canvas);
        return bitmap;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...