Как нарисовать растровое изображение холста в одном из двух мест случайным образом? - PullRequest
0 голосов
/ 25 января 2020

Как нарисовать растровое изображение в одной из двух случайных позиций? Я хочу нарисовать растровое изображение в

  1. в точке, которая находится в центре с одной стороны экрана и от центра экрана
  2. или в центре с другой стороны

как показано точками ниже

 ______________________
|     .     |     .    |             
|           |          |
|           |          |
|           |          |
|           |          |
|           |          |
|           |          |
|           |          |
|           |          |
|Typical android screen|
|           |          |
________________________

Вот как пытался достичь этого, но не смог

//package and import
public class items extends View {
   //here declared to some variables
    private int RandomSing;
    Point center;
    public items(int color, Context c) {
        super(c);

        // create a bitmap from the supplied image (the image is the icon that is part of the app)
      items= Bitmap.createScaledBitmap(BitmapFactory.decodeResource(c.getResources(),
                R.drawable.rocket),dst,dst, false);


    }
    public void setBounds(int lx, int ly, int ux, int uy) {
        lowerX = lx;
        lowerY = ly;
        upperX = ux;
        upperY = uy;
        x = y = 0;
        center=new Point(0,0);
        RandomSing=0;
    }
    public boolean move() {
    // use to move the bitmap in vertical direction downwards 
        y += stepY;

        if(stepY<8){stepY+=0.0025;}

        if (y + dst > upperY) {
            x = y = 0 ;
            return true;
        }
        else
            return true;
    }

    public void reset() {
        x=0;
        RandomSing +=7;
        y=0;
    }

    public void draw(Canvas canvas)
    {
        super.draw(canvas);
        X=getWidth();
        Y=getHeight();
        center=new Point((int)(X/4),0 );
        if(RandomSing%2!=0) x = (dst +center.x );
        else x = (dst+center.x+(X/2));
        canvas.drawBitmap(items,x,y, null);
    }
}

на самом деле я буду использовать его в другом классе, чтобы использовать его как инопланетные корабли, идущие в атаку, но они приходят только в первой точке ..

Пожалуйста, дайте мне как можно больше деталей

...