Рисование прямоугольника на холсте - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь сделать игру.У меня есть mainActivity, который называется BridgeScene, и класс для врага.В mainActivity у меня есть две ImageView s и несколько кнопок.

В моем классе у меня есть враг (представлен прямоугольником), и я использую Canvas, чтобы нарисовать прямоугольник.Мне нужно нарисовать этот прямоугольник на моей BridgeScene Деятельности.Как я могу это сделать?

Я не могу установить contentview дважды, потому что он уже задан в действии как

setContentView(R.layout.activity_bridge_scene);

Так как я могу нарисовать мой прямоугольник из своего класса противника вмоя BridgeScene активность?

моя активность:

public class BridgeScene extends AppCompatActivity {

    private static final  int[] ALL_DRAWABLE_RES_EAGLE = new int[]{
            R.drawable.stickmanreturnkick0,
            R.drawable.stickmanreturnkick1,
    };

    private Ennemy1 ennemy1;

    private Handler handler = new Handler();
    private final static long Interval = 30;

    private Runnable updateImageTask;
    private int currentDrawableResIndex;

    private static long IMAGE_UPDATE_DELAY_MILLIS = 30;

    private ImageView imvStickman;
    private ImageView imvJump;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bridge_scene);

        ennemy1 = new Ennemy1(this);
        setContentView(ennemy1);

        updateImageTask = new UpdateImageTask();

        imvJump = (ImageView) findViewById(R.id.imvJump);

        imvStickman = (ImageView) findViewById(R.id.imvStickman);
        imvEnnemi = (ImageView) findViewById(R.id.imvEnnemi);

        imvJump.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               //code//
            }
        });
    }
}

мой класс:

public class Ennemy1 extends View{
    public  Bitmap rec;
    public  int recX;
    public  int recY;

    public int canvasWidth;
    public int canvasHeight;

    public Ennemy1(Context context){
        super(context);
        rec = BitmapFactory.decodeResource(getResources(), R.drawable.enem1);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawBitmap(rec, 100, 100, null);
        canvasWidth = canvas.getWidth();
        canvasHeight = canvas.getHeight();
    }
}

1 Ответ

0 голосов
/ 30 января 2019

Вы должны добавить что-то похожее на ваш файл activity_bridge_scene.xml

<com.your.package.Ennemy1 
    android:id="@+id/enemyId"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...