마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 스튜디오 그림판 저장, 호출 관련 도움이 필요해요

0 추천

대학 기말로 그림판 저장, 호출과제인데 너무 어려워요. 어디를 고쳐야할지 모르겠습니다ㅠ

고쳐야 하는 부분을 고쳐 적어주실수 있으신가요? 제발 부탁드립니다ㅠ...

 

저장, 읽기 버튼
ibSave = (ImageButton) findViewById(R.id.ibSave);
        ibSave.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //View view = getWindow().getDecorView();
                //View view = activity.findViewById(android.R.id.content);
                View view = findViewById(R.id.img);
                //View view = pictureLayout.getRootView();
                //View view = pictureLayout.getChildAt(0);

                String folder = "TEST";
                String name = "test";
                saveBitmaptoJpeg(view,folder, name);
            }
        });

        ibLoad = (ImageButton) findViewById(R.id.ibLoad);
        ibLoad.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                curShape = READ;
                graphicView.invalidate();
                mPaint.setColor(Color.RED);
                graphicView.invalidate();
            }
        });
====================================================================
저장관련
public void saveBitmaptoJpeg(View view, String folder, String name) {
        String ex_storage =Environment.getExternalStorageDirectory().getAbsolutePath();
        // Get Absolute Path in External Sdcard
        String foler_name = "/"+folder+"/";
        String file_name = name+".jpg"; //저장할 파일 이름
        String string_path = ex_storage+foler_name;

        File file_path;
        view.setDrawingCacheEnabled(true);
        // view.buildDrawingCache();
        Bitmap screenBitmap = view.getDrawingCache();



        try{
            file_path = new File(string_path, file_name);
            //File file = new File(string_path+file_name);
            if(!file_path.isDirectory()){
                file_path.mkdirs();
            }
            //if(file.isFile())
            //   file.delete();

            FileOutputStream out = new FileOutputStream(string_path+file_name);
            screenBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
            out.flush();
            out.close();
            view.setDrawingCacheEnabled(false);
            Toast.makeText(getApplicationContext(),
                    file_name + " 이 저장됨", Toast.LENGTH_SHORT).show();
        }catch(FileNotFoundException exception){
            Log.e("FileNotFoundException", exception.getMessage());
        }catch(IOException exception){
            Log.e("IOException", exception.getMessage());
        }
    }

====================================================================

case READ:
                    //Paint paint = new Paint();
                    //paint.setColor(Color.WHITE);
                    String ex_storage =Environment.getExternalStorageDirectory().getAbsolutePath();
                    // Get Absolute Path in External Sdcard
                    String tmp = ex_storage + "/TEST/test.jpg";
                    Bitmap bitmap = BitmapFactory.decodeFile(tmp);
                    canvas.drawBitmap(bitmap,0,0,null);
                    bitmap.recycle();
                    curShape = LINE;
                    break;

 

안드초보 님이 2019년 12월 10일 질문
2019년 12월 11일 수정

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...