package jp.eclipse; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends Activity { public Button bt; public sView sv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout LL= new LinearLayout(this); LL.setOrientation(LinearLayout.VERTICAL); setContentView(LL); TextView tv=new TextView(this); LL.addView(tv); tv.setText(" マンデルブロー集合"); bt=new Button(this); bt.setText("描画"); bt.setOnClickListener(new btOnClick()); LL.addView(bt); sv=new sView(this, 100,100,240,240); LL.addView(sv); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } class btOnClick implements OnClickListener{ public void onClick(View v){ if(v==bt){ sv.iflag=true; sv.invalidate(); } } } class sView extends View{ public double SX, SY, BX, BY; public int MD = 4; public Paint[] p; public boolean iflag=false; public sView(Context cn, double scaleX, double scaleY, double baseX, double baseY){ super(cn); SX=scaleX; SY=scaleY; BX=baseX; BY=baseY; p=new Paint[MD]; for(int i=0;i= 4) return i; DA = A - AA; DB = B - BB; if(DA * DA + DB * DB < 0.001)return i; } return 100; } void drawXY(Canvas cs, int i, double X, double Y){ float XX = (float)(SX * X + BX), YY = (float)(SY * Y + BY); cs.drawRect(XX, YY,XX+1,YY+1,p[i % MD]); } } }