안드로이드 개발 질문/답변
(글 수 45,052)
xml파일에 아래처럼 간단하게 버튼2개만 놧구요..
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/bla"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="BLACK"
android:onClick="mOnClick"
/>
<Button
android:id="@+id/red"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RED"
android:onClick="mOnClick"
/>
</LinearLayout>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
아래 그림판 관한 java소스있데요...
package exam.draw2;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TableLayout.LayoutParams;
public class Draw2Activity extends Activity {
private MyView vw;
ArrayList<Vertex> arVertex;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
vw = new MyView(this);
setContentView(vw);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View mainView = inflater.inflate(R.layout.main, null);
addContentView(mainView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
arVertex = new ArrayList<Vertex>();
}
// 정점 하나에 대한 정보를 가지는 클래스
public class Vertex {
Vertex(float ax, float ay, boolean ad) {
x = ax;
y = ay;
Draw = ad;
}
float x;
float y;
boolean Draw;
}
protected class MyView extends View {
Paint mPnt1;
Paint mPnt2;
public MyView(Context context) {
super(context);
// Paint 객체 미리 초기화
mPnt1 = new Paint();
mPnt1.setColor(Color.BLACK);
mPnt1.setStrokeWidth(3);
mPnt1.setAntiAlias(true);
mPnt2 = new Paint();
mPnt2.setColor(Color.RED);
mPnt2.setStrokeWidth(3);
mPnt2.setAntiAlias(true);
}
public void onDraw(Canvas canvas) {
canvas.drawColor(Color.LTGRAY);
// 정점을 순회하면서 선분으로 잇는다.
for (int i=0;i<arVertex.size();i++) {
if (arVertex.get(i).Draw) {
canvas.drawLine(arVertex.get(i-1).x, arVertex.get(i-1).y,
arVertex.get(i).x, arVertex.get(i).y, mPnt1);
}
else if (arVertex.get(i).Draw) {
canvas.drawLine(arVertex.get(i-1).x, arVertex.get(i-1).y, arVertex.get(i).x, arVertex.get(i).y, mPnt2);
}
}
}
public void mOnClick(View v) {
switch (v.getId()) {
case R.id.bla:
[ ]
break;
}
}
// 터치 이동시마다 정점들을 추가한다.
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
arVertex.add(new Vertex(event.getX(), event.getY(), false));
return true;
}
if (event.getAction() == MotionEvent.ACTION_MOVE) {
arVertex.add(new Vertex(event.getX(), event.getY(), true));
invalidate();
return true;
}
return false;
}
}
}
주황색 줄쳐놓은 부분에 버튼bla를 누르면 mPnt1에 지정한 볼펜이 나오게끔하려고 하는데
[ ]이 부분을 어떡해 지정해야 하는지 잘모르겠는데 알려주시면 정말 감사하겠습니다..ㅜㅜ




온터치이벤트쓰세요~!