android画布点击失败T_T

时间:2012-02-29 16:22:09

标签: android canvas click draw

我需要在画布上画一些东西,然后舔每一个。我上了课

public class PlayGameView extends SurfaceView implements SurfaceHolder.Callback 

在本课程中我有onDraw方法

    @Override
public void onDraw(Canvas  canvas) {     
        Paint  paint = new Paint (); 
        Bitmap wrench = BitmapFactory.decodeResource(getResources(), R.drawable.wrench);
        canvas.drawColor(Color .BLACK);
        for(int i = 0; i < 4; i++) {
            for(int j = 0; j < 4; j++) {
                canvas.drawBitmap(wrench, canvas.getWidth()/2 - wrench.getWidth()*2 + i*wrench.getWidth(), 0  + j*wrench.getHeight(), null);
            }
        }

}

和内部类Thread。 所以,在xml文件中我添加了这个视图

    <com.cerbertek.PlayGameView
    android:id="@+id/play_field_surface_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

并且要在活动类

中添加clicklistener
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.play_game);

    playField = (PlayGameView) findViewById(R.id.play_field_surface_view);
    playField.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
                Toast.makeText(PlayGameActivity.this, "ОХУЕТЬ", 2000);          
        }
    });
}

但没有任何反应。没有吐司。当我调用getWidth方法时它向我展示了零!但我看到了图片)

我该如何解决我的问题?

1 个答案:

答案 0 :(得分:0)

你忘记了show

Toast.makeText(PlayGameActivity.this, "ОХУЕТЬ", 2000).show();