안녕하세요 간단하게 안드로이드로 그림판? 같은 기능을 만들어보려고 합니다.

저장, 불러오기 기능을 넣고 싶은데요

일단 그...XML로 상위에 버튼2개랑 하위에 커스텀뷰로 그림그려지는 부분을 구현을 했고요

먼저 커스텀 뷰의 소스이구요

package com.paint.tool;

public class paint_view extends View
{
 ArrayList<Vertex> Picture;
 Canvas canvas;
 Paint Pnt = new Paint();
 
 public paint_view(Context context) {
  super(context);
  // TODO Auto-generated constructor stub
  
  
 }
 
 public paint_view(Context context, AttributeSet attrs)
 {
  super(context, attrs);
  Picture = new ArrayList<Vertex>();
 }
 
 public paint_view(Context context, AttributeSet attrs, int defStyle)
 {
  super(context, attrs, defStyle);
 }
 
 public void onDraw(Canvas canvas){
  
  Pnt.setColor(Color.WHITE);
  Pnt.setStrokeWidth(3);
  Pnt.setAntiAlias(true);
  
  for (int i=0;i<Picture.size();i++){
   if(Picture.get(i).Draw){
    canvas.drawLine(Picture.get(i-1).x,Picture.get(i-1).y,Picture.get(i).x,Picture.get(i).y, Pnt);
   }
  }
 }

 @Override
 public boolean onTouchEvent(MotionEvent event){
  if (event.getAction()==MotionEvent.ACTION_DOWN){
   Picture.add(new Vertex(event.getX(), event.getY(), false));
   return true;
  }
  if (event.getAction() == MotionEvent.ACTION_MOVE){
   Picture.add(new Vertex(event.getX(), event.getY(), true));
   invalidate();
   return true;
  }
  return false;
 }
 
 public class Vertex{
     Vertex(float ax, float ay, boolean ad){
      x = ax;
      y = ay;
      Draw = ad;
     }
     float x;
     float y;
     boolean Draw;
    }

}

이건 엑티비티 부분 입니다.

public class paint extends Activity {
    /** Called when the activity is first created. */
 
 paint_view pv;
 Canvas can;
 
   
     ArrayList<Vertex> pic1 = new ArrayList<Vertex>();;

 
   
    @Override  
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     
        pv = new paint_view(this);
  
       
       
        findViewById(R.id.save).setOnClickListener(mClickListener);
        findViewById(R.id.load).setOnClickListener(mClickListener);
        pv = (paint_view)findViewById(R.id.paint_view);
       
 
    }
   
   
    Button.OnClickListener mClickListener = new View.OnClickListener() {
   
   @Override
   public void onClick(View v)
   {
    switch(v.getId())
    {
    case R.id.save:
     
     
     break;
    
    case R.id.load:
   

break;
    
    }
    
    
   }
  };
}

예 대충 이렇게 나왔는데요 지금 밑에 커스텀 뷰 부분에서 터치로 입력 받아서 그림이 그려지긴 하는데
저장, 불러오기 부분을 구현해야하는데 갑갑해서 이렇게 질문을 드립니다

먼저 제가 생각하고 있는 것은 저기 Picture 어레이리스트를 Fileinputstream으로 한픽셀씩 읽어서 저장을 하면될것같은데요
그전에 불러오기에 대한 실험으로 이것저것 시도를 해 봤는데 커스텀뷰를 선언한 객체 pv를 이용해서

pv.Picture를 조금 수정하고

pv.onDraw나 뭐 이것저것 해봐도 현재 뷰자체에 변화가 안되더라구요

어떻게해야 지금 보이는 캔버스? 커스텀 뷰에 그려진 그림을 저장해서 불러올경우에

다시 그려질까요? 지식이 별로없어서 설명이 엉성하네요... 답변 부탁드리겠습니다.