如何在Activity中调用自定义类?

时间:2016-12-30 22:39:04

标签: java android android-view

所以我有这个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();
    }
}

3 个答案:

答案 0 :(得分:0)

您已扩展了View,因此您必须像使用任何其他视图一样使用它,方法是在运行时以编程方式添加或在布局中使用它。

答案 1 :(得分:0)

以下是在代码中添加视图的方法。应将以下步骤添加到splash onCreate的{​​{1}}方法中。

  1. 获取视图将添加到代码中的布局,例如activity(当然必须更改布局和布局ID)
  2. 创建LinearLayout linearLayout = findViewById(R.id.linearlayout);
  3. 的实例
  4. DrawAnim
  5. 将其添加到布局中

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

    以下是link to an animated splashscreenvery simple splashscreen的链接,仅显示添加视图的其他选项。虽然第二个是非常有限的,它有一点动画,并不会延迟你的应用程序的启动。

答案 2 :(得分:0)

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

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