0

android studio でお絵描きアプリを作りました。図面を内部ストレージに保存し、後で別のアクティビティで表示するにはどうすればよいですか? ビットマップを保存する方法についてインターネットでいくつかのコードを入手しましたが、それは機能せず、何が間違っていたのかわかりません。私はすでにこの部分で立ち往生しています。

コードの一部を次に示します。

public onClick(View v){

if(v.getId() == R.id.btnBrush){
.....
}

else if(v.getId() == R.id.btnErase){
.....
}

else if(v.getId() == R.id.ibtnSave){
        //save button clicked
        final Dialog saveDialog = new Dialog(this);
        saveDialog.setTitle("Save");
        saveDialog.setContentView(R.layout.save_form);
        saveDialog.show();



        inputName = (EditText) findViewById(R.id.drawFile);
        inputDate = (EditText) findViewById(R.id.date);
        btnSave = (Button) saveDialog.findViewById(R.id.btnSave);
        btnCancel = (Button) saveDialog.findViewById(R.id.btnCancel);

        btnSave.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                iView.setDrawingCacheEnabled(true);
                save();
                saveDialog.dismiss();

                Intent intent = new Intent(DrawingPanel.this, Gallery.class);
                startActivity(intent);
                finish();

                iView.destroyDrawingCache();


            }
        });

        btnCancel.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                saveDialog.dismiss();
            }
        });
    }
}

public void save(){
    Bitmap bitmap = iView.getDrawingCache();

    try{
        FileOutputStream fos = openFileOutput(inputName.getText().toString() + ".png", Context.MODE_PRIVATE);
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
        if(fos != null){
            Toast saved = Toast.makeText(getApplicationContext(), "Image saved.", Toast.LENGTH_SHORT);
            saved.show();
        }
        else{
            Toast unsaved = Toast.makeText(getApplicationContext(), "Image not save.", Toast.LENGTH_SHORT);
            unsaved.show();
        }

        fos.close();
    }

    catch(Exception e){
        Log.e("save()", e.getMessage());
    }
}

日付も入れたいのですがやり方がわかりません。本当にごめんなさい。私はAndroidスタジオの初心者で、これがあまり得意ではないので、本当に学びたいので助けが必要です。

4

1 に答える 1