Не можете ничего нарисовать на холсте с помощью SurfaceView?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Не можете ничего нарисовать на холсте с помощью SurfaceView?

Сообщение Anonymous »

Я не могу ничего отобразить на экране. Я создал действие «Пустые представления», а затем написал следующий код. (Скопировано с YouTube, где это работает)

Код: Выделить всё

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
И все остальные виды проверок что мне сказал ChatGPT
Теперь я сузил проблему до эмулятора. Я попытался подключить свой телефон, и это, похоже, решило проблему. Однако, поскольку я хотел бы использовать эмулятор, это по-прежнему создает проблему.
Эмулятор, кажется, работает нормально, но все, что я рисую на экране, никогда не отображается.

Подробнее здесь: https://stackoverflow.com/questions/792 ... urfaceview
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»