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

커스텀뷰에 그림을 그린 화면을 다음 액티비티화면에 띄우고 싶습니다

0 추천

안녕하세요. 안드로이드 쌩초보이자 자바 쌩초보인 학생입니다.

다름이 아니라 제가 구현하고 싶은 어플이 있는데 검색을 해도 없고 어떻게 건드려야 할지 모르겠어서 질문을 드립니다.

질문 내용은 메인 액티비티 내에 따로 커스텀뷰.java를 만들어 그 커스텀뷰 안에는 터치시 그림을 그릴수 있는 그림판 기능을 넣습니다. 그런뒤 메인액티비티에 띄운 뒤 그림을 그리는데 그 그림을 다음 액티비티 화면에 그대로 띄우고 싶습니다..... 도무지 어떤 방법으로 해야 할 지 막막해서 질문드립니다.

 

 

검색을 해보니 그 화면그대로를 SD카드에 저장하여 다음 액티비티에서 SD카드에 있는 사진을 불러드린다는 게 있다는 것 같은데 혹시 관련 홈페이지 게시물이나 어떤 메서드를 써야할지 질문을 드립니다...

제발 부탁드려요 ㅠㅠㅠㅠㅠㅠㅠㅠ

.. (840 포인트) 님이 2016년 11월 24일 질문

1개의 답변

0 추천
커스텀뷰에 그린 이미지가 저장되어야할 (재 접속 시 다시 보여주는 기능 등) 필요가 없다면 sd 카드를 이용할 필요는 없어보입니다.

이해가 되실지 모르겠지만 아래와 같이 진행해 보세요.

질문에 자세히 나와있지 않아 우선, 아래와 같이 3가지 상황에 대한 가정을 한 뒤 설명 드리겠습니다.

 

1. 가정

  1) 특정 버튼 클릭 시점에 커스텀뷰에 그린 이미지가 Activity에 보여야 한다.

    - 특정 버튼의 id는 btn_save_canvas 로 가정함.

  2) 이미지가 보여지는 Activity는 커스텀뷰를 생성한 Activity 이다.

     - 커스텀뷰 객체명은 mCostomView 로 가정함.

  3) 버튼 클릭 Event Handler는 커스텀뷰를 생성한 Activity 에 있다.

  4) 해당 Activity 에 Canvas 에 그려진 그림이 보여질 ImageView 가 있다.

   

2. 아래와 같이 진행해 보세요

  1) 버튼 클릭 이벤트 Handler 예시

      public void onClick(View view){

         switch(view.getId()){

           case R.id.btn_save_view:

               drawCanvasToImageView();

               break;

         }

       }

  2) drawCanvasToImageView()

     private void drawCanvasToImageView(){

       Bitmap bmp = Bitmap.createBitmap(mCostomView.getWidth(), mCostomView.getHeight(), Bitmap.Config.ARGB_8888);

       Canvas canvas = new Canvas(bmp);

       mCostomView.draw(canvas);

 

       //이미지뷰에 bitmap 셋팅

       mImageView.setImageBitmap(bmp);

    }

    

>>>> 버튼 클릭 시 커스텀뷰를 제거하는 코드는 생략했습니다.

>>>> 다른 Activity 에 해당 그림을 보여줘야 된다면 Bitmap 다른 Activity 로 전달하면 되겠네요
빅배스 (4,260 포인트) 님이 2016년 11월 24일 답변
...