Код: Выделить всё
public class GamePanel extends SurfaceView implements SurfaceHolder.Callback {
private Paint redpaint = new Paint();
public GamePanel(Context context) {
super(context);
getHolder().addCallback(this);
redpaint.setColor(Color.RED);
}
@Override
public void surfaceCreated(@NonNull SurfaceHolder holder) {
Canvas c = holder.lockCanvas();
c.drawRect(50,50,100,100,redpaint);
holder.unlockCanvasAndPost(c);
}
@Override
public void surfaceChanged(@NonNull SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(@NonNull SurfaceHolder holder) {
}
}
Код: Выделить всё
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new GamePanel(this));
}
}
- Я изменил цвет фона, чтобы убедиться, что я вижу view
- Я проверил, что c (холст из lockCanvas()) не равен нулю
- Я проверил что видимость для этого и родительского элемента равна 0
Теперь я сузил проблему до эмулятора. Я попытался подключить свой телефон, и это, похоже, решило проблему. Однако, поскольку я хотел бы использовать эмулятор, это по-прежнему создает проблему.
Эмулятор, кажется, работает нормально, но все, что я рисую на экране, никогда не отображается.
Подробнее здесь: https://stackoverflow.com/questions/792 ... urfaceview
Мобильная версия