2016-12-30 48 views
0

所以我有这个DrawAnim.java类文件,我想在我的MainAcitivty里面使用它的内容。我试图创建一个像这样的对象:如何在活动中调用自定义类?

DrawAnim draw; 

而且在onCreate方法,我这样做:

draw.onDraw(); <- I know I have to pass a parameter but don't know what to pass on.  

这里是我的类:

public class DrawAnim extends View { 

    Bitmap ball; 
    int x, y; 

    public DrawAnim(Context context) { 
     super(context); 
     ball = BitmapFactory.decodeResource(getResources(), R.drawable.globe); 
     x=0; 
     y=0; 
    } 

    public void onDraw(Canvas canvas){ 
     super.onDraw(canvas); 

     Rect ourRect = new Rect(); 
     ourRect.set(0,0,canvas.getWidth(),canvas.getHeight()/2); 

     Paint red = new Paint(); 
     red.setColor(Color.RED); 
     red.setStyle(Paint.Style.FILL); 
     canvas.drawRect(ourRect,red); 

     if(x < canvas.getWidth()) { 
      x += 10; 
     } else{ 
      x =0; 
     } 
     if(y < canvas.getHeight()){ 
      y+=10; 
     }else{ 
      y =0; 
     } 

     Paint p = new Paint(); 
     canvas.drawBitmap(ball,x,y,p); 
     invalidate(); 
    } 
} 

回答

0

你已经延伸出View,使您必须像使用其他视图一样使用它,可以在运行时通过编程方式添加它或在布局中使用它。

+0

在运行时以编程方式添加它意味着什么?你能举一些例子谢谢。 – user7062312

+0

就像这个按钮是如何添加的:http://stackoverflow.com/a/4924755/360211,找到一个现有的容器并调用'.addView',但我建议尝试将它添加到您的布局xml中,告诉我包它在,我会建议你如何做到这一点。 – weston

+0

我不想添加任何按钮。我忘了告诉你,我的MainActivty是我的启动画面,并且我试图在不按任何按钮的情况下创建此动画。 – user7062312

0

以下是如何在代码中添加视图。 onCreate方法的飞溅activity应添加以下步骤。

  1. 获取布局,其中的观点将在代码中添加,像LinearLayout linearLayout = findViewById(R.id.linearlayout);(这当然必须改变你的布局和布局-ID)
  2. 创建的DrawAnim
  3. 实例
  4. 将其添加到布局通过linearLayout.addView(drawAnim);

希望这给出了一个想法和帮助。

这是一个link to an animated splashscreen和一个链接到very simple splashscreen只是为了显示一些替代品添加视图。虽然第二个是非常有限的它有一点动画,并不会延迟您的应用程序的开始。

0

您应该像添加其他视图一样添加它,将上下文传递给您的自定义视图构造函数,设置Layout params并将其添加到父视图组。

DrawAnim draw = new DrawAnim(this); // 'this' as a context in activity 
draw.setLayoutParams(layoutParams); 
parentViewGroup.addView(draw); 
相关问题