Android开发:随机绘制彩色实心圆(2)

下面我们来编写主程序。在创建工程时会要求输入一个“Create Activity”,由于我们输入的是“Main”,因此,生成的主类就是Main.java。打开Main.java文件,输入如下的代码。


package mobile.android.ch02.first;

import java.util.Random;
import mobile.android.first.CircleCanvas.CircleInfo;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;

public class Main extends Activity
{
    
private CircleCanvas mCircleCanvas;            //  定义一个画布类

    @Override
    
public void onCreate(Bundle savedInstanceState)
    {
        
super.onCreate(savedInstanceState);
           
//  装载布局文件(在2.2.3节配置的main.xml文件)
        ViewGroup viewGroup = (ViewGroup)getLayoutInflater().inflate(R.layout.main, null);
        mCircleCanvas 
= new CircleCanvas(this);        //  创建CircleCanvas(画布类)对象
          
//  将CircleCanvas对象添加到当前界面的视图中(两个按钮的下方)
        viewGroup.addView(mCircleCanvas, new LayoutParams(LayoutParams.FILL_PARENT, 350));
        setContentView(viewGroup);
    }
    
//  开始随机绘制圆形(第一个按钮的单击事件)
    public void onClick_DrawRandomCircle(View view)
    {
        Random random 
= new Random();
        
float randomX =(float)( 100 + random.nextInt(100));        //  随机生成圆心横坐标(100至200)
        float randomY =(float)( 100 + random.nextInt(100));         //  随机生成圆心纵坐标(100至200)
        float randomRadius =(float)( 20 + random.nextInt(40));     //  随机生成圆的半径(20至60)
        int randomColor = 0;
        
//  产生0至100的随机数,若产生的随机数大于50,则画笔颜色为蓝色
        if(random.nextInt(100> 50)
        {
            randomColor 
= Color.BLUE;
        }
        
else
        {
//  产生0至100的随机数,若产生的随机数大于50,则画笔颜色为红色
            if(random.nextInt(100> 50)
                randomColor 
= Color.RED;
            
//  否则,画笔颜色为绿色
            else
                randomColor 
= Color.GREEN;
        }
        CircleInfo circleInfo 
= new CircleInfo();
        circleInfo.setX(randomX);
        circleInfo.setY(randomY);
        circleInfo.setRadius(randomRadius);
        circleInfo.setColor(randomColor);
        mCircleCanvas.mCircleInfos.add(circleInfo);        
//  将当前绘制的实心圆信息加到List对象中
        mCircleCanvas.invalidate();                    //  使画布重绘
    }
    
//  清空画布(第二个按钮的单击事件)
    public void onClick_Clear(View view)
    {
        mCircleCanvas.mCircleInfos.clear();               
//  清除绘制历史
        mCircleCanvas.invalidate();                    //  使画布重绘
    }
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwwgfz.html