如何使用mainactivity上的按钮控制画布位图?

时间:2013-06-29 16:22:35

标签: android android-canvas surfaceview android-button bitmapfactory

我已经在surfaceview上有x和y变量,但不知道如何从中获取它们 我按钮所在的主要活动。

这看起来像一个百万美元的问题没有人回答我我已经多次发布这个问题而且我找不到任何与此相关的内容。

这是按钮:

 Button1.setOnClickListener(this);
    }

    public void onClick(View v) {


//I want to access variable x and y of surfaceview


             if (x==230)
            x=x +20;

        invalidate();

    }

提前致谢

2 个答案:

答案 0 :(得分:0)

您尝试使用界面吗?获得x和y值后,可以将它们传递给接口方法。然后,您可以在MainActivity上实现该接口。

答案 1 :(得分:0)

如果您已经创建了SurfaceView的子类,其中包含x和y变量,那么最佳做法是为这些变量创建setter和getter(我称之为setPositionX()而不是setX(),因为SurfaceView已经有了这种方法):

public class MySurfaceView extends SurfaceView {
    private int x;

    private int y;

    public void setPositionX(int x) {
        this.x = x;
    }

    public void setPositionY(int y) {
        this.y = y;
    }

    public int getPositionX() {
        return x;
    }

    public int getPositionY() {
        return y;
    }
}

并在您的活动中:

private MySurfaceView mySurfaceView;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    // Create SurfaceView and assign it to a variable.
    mySurfaceView = new MySurfaceView(this);

    // Do other initialization. Create button listener and other stuff.
    button1.setOnClickListener(this);
}

public void onClick(View v) {
    int x = mySurfaceView.getPositionX();
    int y = mySurfaceView.getPositionY();

    if (x == 230) {
        mySurfaceView.setPositionX(x + 20);
    }

    invalidate();
}