Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何制作一种颜色的按钮_Java_Android_Button_Android Activity_Android Canvas - Fatal编程技术网

Java 如何制作一种颜色的按钮

Java 如何制作一种颜色的按钮,java,android,button,android-activity,android-canvas,Java,Android,Button,Android Activity,Android Canvas,我正在为android创建一个游戏应用程序,当点击绿色圆圈或(按钮)时,你会得到奖励,如果点击红色圆圈或(按钮),你会输掉游戏。我的问题是为圆圈创建这些按钮。我已经在这里的其他人的帮助下制作了圆的生成器,并且尝试创建按钮。以下是迄今为止我掌握的所有代码: public class Main extends Activity { DrawingView v; @Override protected void onCreate(Bundle savedInstanceSt

我正在为android创建一个游戏应用程序,当点击绿色圆圈或(按钮)时,你会得到奖励,如果点击红色圆圈或(按钮),你会输掉游戏。我的问题是为圆圈创建这些按钮。我已经在这里的其他人的帮助下制作了圆的生成器,并且尝试创建按钮。以下是迄今为止我掌握的所有代码:

public class Main extends Activity 
{
    DrawingView v;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        v = new DrawingView(this);
        setContentView(v);

        Button redCircle = (Button) findViewById(Color.RED);

        redCircle.setOnClickListener(new View.OnClickListener() 
        {               
            @Override
            public void onClick(View v) 
            {
                // TODO Auto-generated method stub
                Intent s = new Intent(Main.this, ifRed());

                startActivity(s);
            }

            private Class<?> ifRed() 
            {
                // TODO Auto-generated method stub
                String str = "You clicked on a red circle. You Loose!";

                System.out.print(str);
                return null;
            }
        });
    }
}

这个问题和你一个小时前问的问题有什么有意义的区别吗?用不同的措辞,这样人们可以更好地理解它,这样就可以得到答案。我认为处理这个问题的首选方法是编辑原文,而不是发布等同于副本的内容。正如我在另一方面所说的,我认为你的问题不完全在于措辞,而是与代码相匹配的措辞。圆圈应该是按钮吗;您是否正在生成按钮应该使用的图像?与
Button redCircle=(Button)findviewbyd(Color.RED)相关的xml;你希望/认为这能实现什么?目前的状况如何;它是否运行,崩溃,同意愿望?是的,圆圈应该显示,否,代码行崩溃程序,因为Color.RED是int,id在xml中找到,但我无法在xml中设置按钮id,因为它在Java中的绘图视图类中初始化。视图也设置为DrawingView
public class DrawingView extends View 
{
    public DrawingView(Context context) 
    {
        super(context);
        // TODO Auto-generated constructor stub
    }

    private int lastColor = Color.BLACK;
    private final Random random = new Random();
    private final Paint paint = new Paint();
    private final int radius = 230;
    private final Handler handler = new Handler();

    private final Runnable updateCircle = new Runnable() 
    {
        @Override 
        public void run() 
        {
            lastColor = random.nextInt(2) == 1 ? Color.RED : Color.GREEN;
            paint.setColor(lastColor);
            invalidate();
            handler.postDelayed(this, 380);
        }
    };

    @Override 
    protected void onAttachedToWindow() 
    {
        super.onAttachedToWindow();
        handler.post(updateCircle);
    }

    @Override 
    protected void onDetachedFromWindow() 
    {
        super.onDetachedFromWindow();
        handler.removeCallbacks(updateCircle);
    }

    @Override
    protected void onDraw(Canvas canvas) 
    {
        super.onDraw(canvas);
        // your other stuff here
        canvas.drawCircle(random.nextInt(canvas.getWidth()-radius/2) + radius/2f, random.nextInt(canvas.getHeight()-radius/2) + radius/2f, radius, paint);
    }        
}