Белый экран SurfaceView не рисует изображение - PullRequest
0 голосов
/ 13 января 2020

Можете ли вы помочь мне, пожалуйста. Я кодирую игру Android с surfaceView , но в RunTime холст показывает только белый цвет. Почему ничего не появляется?

Это код, который должен нарисовать.

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout llLienzo=findViewById(R.id.llLienzo);
        llLienzo.addView(new GameView(getApplicationContext()));
    }
}

    public class GameView extends SurfaceView {
    private Bitmap bmp;
    private SurfaceHolder holder;
    public GameView(Context context) {
        super(context);
        holder=getHolder();
        holder.addCallback(new SurfaceHolder.Callback() {
            @SuppressLint("WrongCall")
            @Override
            public void surfaceCreated(SurfaceHolder holder) {
                bmp=Bitmap.createScaledBitmap(
                        BitmapFactory.decodeResource(getResources(), R.drawable.icon),
                        getWidth(),
                        (int)(getWidth()*0.75),
                        false);
                Canvas canvas=holder.lockCanvas();
                onDraw(canvas);
                holder.unlockCanvasAndPost(canvas);
            }

            @Override
            public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
            }

            @Override
            public void surfaceDestroyed(SurfaceHolder holder) {

            }
        });
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawColor(Color.BLACK);
        canvas.drawBitmap(bmp, 10, 10, null);

    }
}

Это снимок экрана: (*

enter image description here

...