androidで絵を描く(layout部分)
入力ホームで得た数値分の角度開いた扇形を描くプログラム。
のはずだったんだけど、扇形になんねぇじゃん。
楕円じゃん。
入力ホームのアクティビティ→画像表示アクティビティの流れ。
入力ホームの数値を渡す方法に若干苦労したけど、
入力側
Intent intent = new Intent(arc.this, arcview.class);
EditText textnum = (EditText) findViewById(R.id.text_num);
intent.putExtra("Num", Integer.parseInt(textnum.getText().toString()));
startActivityForResult(intent, 0);
出力側
Bundle extras = getIntent().getExtras(); if(extras != null){ num = extras.getInt("Num"); }
で出来た。
layout部分
続きを読むmain.java
package arc.test; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button_do = (Button) findViewById(R.id.button_do); button_do.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent intent = new Intent(arc.this, arcview.class); EditText textnum = (EditText) findViewById(R.id.text_num); intent.putExtra("Num", Integer.parseInt(textnum.getText().toString())); startActivityForResult(intent, 0); } }); } }
arcview.java
package arc.test; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.RectF; import android.os.Bundle; import android.view.View; public class arcview extends Activity{ public static Paint cPaint; public static RectF rect; public static Path arc; public static Paint lPaint; public static float linex = 10; public static float liney = 200; public static double rad; public static Paint dPaint; private static float num; /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(new GraphicsView(this)); Bundle extras = getIntent().getExtras(); if(extras != null){ num = extras.getInt("Num"); } } static public class GraphicsView extends View{ public GraphicsView(Context context){ super(context); } protected void onDraw(Canvas canvas){ cPaint = new Paint(); cPaint.setColor(Color.WHITE); dPaint = new Paint(); dPaint.setColor(Color.BLACK); rect = new RectF(25, 100, 225, 300); arc = new Path(); lPaint = new Paint(); lPaint.setColor(Color.RED); arc.arcTo(rect, 180, num); canvas.drawPath(arc, cPaint); canvas.drawLine(linex, liney, 125, 190, lPaint); } } }