0
각 버튼을 클릭 한 후 원을 추가하려고하는데 같은 화면이 표시됩니다. 아직 다른 버튼 코드를 구현하지는 않았지만 화면을 지우겠다고했습니다. 원은 임의의 위치/크기/색상으로되어 있습니다. 버튼을 클릭하면 첫 번째 서클 만 인쇄됩니다. 다시 클릭하면 앱이 종료됩니다. 아직 임의의 위치/크기를 추가하지는 않았지만 각 버튼을 클릭하여 화면에 다른 원을 표시하는 방법을 모르겠습니다. 내 코드는 아래와 같습니다.각 버튼을 클릭 한 후 원을 추가하는 방법은 android를 클릭 하시겠습니까?
package com.example.randomcircles;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
public class DisplayRandomCircles extends Activity
{
DrawCircle c;
Canvas d;
FrameLayout f1;
@Override
public void onCreate(Bundle b)
{
super.onCreate(b);
setContentView(R.layout.activity_display_random_circles);
Button btn1 = (Button) findViewById(R.id.btn1);
Button btn2 = (Button) findViewById(R.id.btn2);
c = new DrawCircle(getApplicationContext());
d = new Canvas();
f1 = (FrameLayout) findViewById(R.id.frame);
}
@SuppressLint("WrongCall")
public void doit(View v)
{
switch (v.getId())
{
case (R.id.btn1):
f1.addView(c);
break;
case (R.id.btn2):
break;
}
}
}
내 그리기 원 코드
import java.util.Random;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
public class DrawCircle extends View
{
public DrawCircle(Context con)
{
super(con);
}
@Override
protected void onDraw(Canvas c)
{
int min = 0, max = 200;
int num = min + (int)(Math.random()*max);
super.onDraw(c);
Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
p.setAntiAlias(true);
p.setStyle(Paint.Style.STROKE);
p.setStrokeWidth(100);
p.setColor(Color.RED);
p.setStyle(Paint.Style.FILL);
c.drawCircle(num, num, num, p);
invalidate();
}
}
내 레이아웃 XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight=".75"
android:orientation="vertical" >
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight=".25"
android:gravity="bottom|center"
android:orientation="horizontal" >
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|bottom"
android:layout_weight=".50"
android:onClick="doit"
android:text="@string/Circle" />
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight=".50"
android:layout_gravity="end|bottom"
android:onClick="doit"
android:text="@string/Clear" />
</LinearLayout>
</LinearLayout>
랜덤을 사용하여 위치를 가져오고'addCircle' 메서드를 만듭니다 – jyoon
** 원 ** 원을 그리시겠습니까? 아니면 버튼을 누르면 ** 원 ** 원을 추가 하시겠습니까? –
서클 버튼을 클릭 할 때마다 새 서클을 추가하고 싶습니다. – user3242607