Setting size of a triangle (Android)
<p>So, I have created an android activity that draws a triangle on the canvas. I also added 4 menus(Color, Enlarge, Shrink, and Reset) to the VM. The color works fine but I'm not quite sure how to resize a triangle in android once that menu button is pressed.The assignment says to just fix the top point of the triangle, and then change the coordinates of the bottom two points of the triangle. Can anyone point me in the right direction on how to do that in Android?</p>

<p>Here's my code, although the implementation of enlarge, shrink, and reset are set up to work with a circle(project I did before), not a triangle. Please note that the "Color" menu works so no need to do that.</p>

<pre><code>public class MainActivity extends Activity
{
    final Context context = this;
    private Graphics graphic;
    private Dialog radiusDialog; //Creates dialog box declaration
    private SeekBar red;
    private SeekBar green;
    private SeekBar blue;
    private Button radiusButton;

    private TextView progress1;
    private TextView progress2;
    private TextView progress3;
    private TextView tv;


    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);       
        graphic = new Graphics(this); //Create new instance of graphics view
        setContentView(graphic); //Associates customized view with current screen     
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) 
    {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) //This acts as a menu listener to override
    {
        switch(item.getItemId()) //returns menu item
        {
        case R.id.Color:
            showDialog();
            break;
        case R.id.Shrink:
            graphic.setRadius(graphic.getRadius() -1);
            graphic.invalidate();
            break;
        case R.id.Enlarge:
            graphic.setRadius(graphic.getRadius() +1);
            graphic.invalidate();
            break;
        case R.id.Reset:
            graphic.setColor(Color.CYAN);
            graphic.setRadius(75);
            graphic.invalidate();
            break;
        }
        return super.onOptionsItemSelected(item);
    }





    void showDialog() //creates memory for dialog
    {
        radiusDialog = new Dialog(context);
        radiusDialog.setContentView(R.layout.draw_layout);  //binds layout file (radius) with current dialog
        radiusDialog.setTitle("Select Color:");


        red = (SeekBar)radiusDialog.findViewById(R.id.seekBar1);
        green = (SeekBar)radiusDialog.findViewById(R.id.seekBar2);
        blue = (SeekBar)radiusDialog.findViewById(R.id.seekBar3);

        progress1 = (TextView)radiusDialog.findViewById(R.id.textView2);
        progress2 = (TextView)radiusDialog.findViewById(R.id.textView4);
        progress3 = (TextView)radiusDialog.findViewById(R.id.textView6);    

        mychange redC = new mychange();
        red.setOnSeekBarChangeListener(redC);

        mychange greenC = new mychange();
        green.setOnSeekBarChangeListener(greenC);

        tv = (TextView)radiusDialog.findViewById(R.id.textView7);
        mychange c = new mychange();
        blue.setOnSeekBarChangeListener(c);     
        radiusButton = (Button) radiusDialog.findViewById(R.id.button1);
        radiusButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                int color = Color.rgb(red.getProgress(), green.getProgress(), blue.getProgress());  
                radiusDialog.dismiss();
                setContentView(R.layout.activity_main);
                setContentView(graphic);
                graphic.setColor(color);//Create new instance of graphics view
                graphic.invalidate();
            }
        });
        radiusDialog.show(); //shows dialog on screen
    } 

    public class mychange implements OnSeekBarChangeListener{

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            // TODO Auto-generated method stub
            int color = Color.rgb(red.getProgress(), green.getProgress(), blue.getProgress());  
            tv.setBackgroundColor(color);
            progress1.setText(String.valueOf(red.getProgress()));
            progress2.setText(String.valueOf(green.getProgress()));
            progress3.setText(String.valueOf(blue.getProgress()));

        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }
    }

}
</code></pre>

<p>Graphics Class to draw triangle</p>

<pre><code>public class Graphics extends View 
{

    private Paint paint;
    private int radius;
    private int color;

    public void setColor(int color)
    {
        this.color = color;
    }

    public Graphics(Context context) //creates custom view (constructor)
    {
        super(context);
        paint = new Paint(); //create instance of paint
        color = Color.CYAN;
        paint.setStyle(Paint.Style.FILL); //draw filled shape
        radius = 75;
    }

    @Override
    protected void onDraw(Canvas canvas) //override onDraw method
    {
        super.onDraw(canvas);
        paint.setColor(color);  
        paint.setStyle(Paint.Style.STROKE);
        Path path = new Path();
        path.moveTo(230, 200);
        path.lineTo(330, 300);
        path.lineTo(130, 300);
        path.close();
        canvas.drawPath(path, paint);
    }

    void setRadius(int radius)
    {
        this.radius = radius;
        invalidate(); //just like repaint method
    }
    public int getRadius()
    {
        return radius;
    }   
}
</code></pre>
