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);
    	}
    }
}