2016-11-29 72 views
-1

我不明白如何在android中制作画布。我看了很多教程,我认为我正确地跟着他们,但我显然没有,因为它仍然不起作用。这里是我有我的主要活动代码:如何在Android中制作画布?

package com.example.dan.shootyguy; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 


public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

    } 

    public void neato(View view){ 
     Intent intent = new Intent(MainActivity.this, DrawThing.class); 
    } 
} 

我觉得这部分的工作,但它不改变应用程序的外观,所以我不能肯定。

然后,我有另一个类,我有帆布的onDraw:

package com.example.dan.shootyguy; 

import android.annotation.TargetApi; 
import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.os.Build; 
import android.os.Bundle; 
import android.view.View; 

public class DrawThing extends View{ 

    Paint paint = new Paint(Color.RED); 

    public DrawThing(Context context) { 
     super(context); 
    } 

    @TargetApi(Build.VERSION_CODES.LOLLIPOP) 
    @Override 
    protected void onDraw(Canvas canvas){ 
     super.onDraw(canvas); 
     canvas.drawOval(25f,25f,25f,25f,paint); 
    } 

} 

这应该是做一个红圈,但它不会做任何事情。任何人都可以提供帮助吗?谢谢。

+0

你的函数'neato'没有被调用,如果它是它不会做任何事情。你也许不想要意图,你想添加你的画布到布局。 –

+0

对不起,没有解释那部分。 Neato是我在XML文件中使用的按钮的onClick。另外,如何将画布添加到布局?我以前从来没有用画布做过东西。 – moxide

+0

@moxide使用addView方法进行绘制后,可以将其添加到画布。 – Faraz

回答

1

视图(DrawThing)续受意图 试试这个电话...

public class MainActivity extends AppCompatActivity { 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
     DrawThing draw=new DrawThing(this); 
      setContentView(draw); 

     } 


    } 
+0

当我有这个应用程序时,应用程序崩溃,所以我不知道。 – moxide

+0

你可以发布logcat .. –

+0

哦,我重试它,它现在的作品,我不知道我以前做错了什么。谢谢您的帮助! – moxide

0

重写的onDraw方法是好的,你只是没有告诉它要画什么。

drawOval

空隙drawOval(左浮动,浮动 顶部, 浮子右, 浮子底部, 油漆涂料)使用指定的涂料绘制指定的椭圆形。椭圆形将根据油漆中的样式 进行填充或加框。

你告诉它canvas.drawOval(25f,25f,25f,25f,paint);这是一个由25,25,25,25限定的椭圆,它的宽度为0,高度为0。换句话说,只是踢出来,不要画任何东西。也许是一个像素,但这甚至令人怀疑。

你可以非常重写绘图程序并绘制东西。你只需要告诉它存在的东西来绘制。