не удалось щелкнуть по холсту Android T_T - PullRequest
0 голосов
/ 29 февраля 2012

Мне нужно нарисовать что-нибудь на холсте, а потом облизать каждую.Я сделал класс

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 голосов
/ 29 февраля 2012

Вы забыли показать это:

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