안녕하세요 간단하게 안드로이드로 그림판? 같은 기능을 만들어보려고 합니다.
저장, 불러오기 기능을 넣고 싶은데요
일단 그...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나 뭐 이것저것 해봐도 현재 뷰자체에 변화가 안되더라구요
어떻게해야 지금 보이는 캔버스? 커스텀 뷰에 그려진 그림을 저장해서 불러올경우에
다시 그려질까요? 지식이 별로없어서 설명이 엉성하네요... 답변 부탁드리겠습니다.
아...어디서 검색해보면 나오나요? 다른 게시판 다 들어가서 전체보기로 검색해도 안나오던데...
혹시 갖고 계시면 메일로 보내주실수 있나요?
gentletiger@nate.com 입니다 부탁 드리겠습니다
저도 지금 앱 개발 프로젝트를 하고 있는데 검색 해보니 소스가 안보입니다ㅠ
메일로 좀 보내주시기 바랍니다. 부탁드려요ㅠ
asas535@nate.com
안녕하세요 흑곰맨님, 급히 그림판 소스가 필요하던 차 찾아다니다가 이 글을 발견하게 되었습니다.
소스를 가지고 계시면 shkim@bzfree.com 으로 보내주실 순 없을런지요?
부탁드립니다.



