В моем приложении для Android, как я могу переместить изображения с их позиции? - PullRequest
1 голос
/ 05 августа 2011

У меня есть класс Panel, который переопределяет метод onDraw (), как показано ниже. У меня есть два изображения, упомянутые в canvas.drawBitmap (), на данный момент их положение зафиксировано.Могу ли я переместить эти два изображения снизу вверх на моем эмуляторе?Код:

class Panel extends View {
    public Panel(Context context) {
        super(context);
    }

    @Override
    public void onDraw(Canvas canvas) {
        Bitmap image1 = BitmapFactory.decodeResource(getResources(), R.drawable.btnpre);
        canvas.drawColor(Color.CYAN);
        canvas.drawBitmap(Image1, 10, 10, null);
        Bitmap Image2 = BitmapFactory.decodeResource(getResources(), R.drawable.btnpre);
        canvas.drawBitmap(Image2, 100, 100, null);

    }
 }

Ответы [ 2 ]

1 голос
/ 05 августа 2011

Перепиши свой код вот так canvas.drawBitmap(Image1, x, y, null);.

И написать поток, чтобы со временем изменить значение x или y.

Как только вы измените значение x или y, пожалуйста, наберите invalidate в вашем Panel.java, чтобы перерисовать представление.

0 голосов
/ 05 августа 2011

используйте переменные в вызове onDraw для значений x, y, где вы хотите нарисовать. Я изменил ваш код, чтобы перерисовать себя в новые координаты после 10 секунд первого вызова отрисовки. Это даст вам идею использовать переменные внутри вызова draw для динамического изменения места рисования. Надеюсь, я ответил на ваш вопрос

class Panel extends View {
    public Panel(Context context) {
        super(context);
    }

    Handler handler = new Handler() {
        public void handleMessage(Message msg) {
            x1 = 20;
            y1 = 20;

            x2 = 120;
            y2 = 120;
            invalidate();
        }
    }
    private int x1 = 10;
    private int y1 = 10;

    private int x2 = 100;
    private int y2 = 100;
    private boolean drawAfterTenSecs = false;


    @Override
    public void onDraw(Canvas canvas) {
        Bitmap image1 = BitmapFactory.decodeResource(getResources(), R.drawable.btnpre);
        canvas.drawColor(Color.CYAN);
        canvas.drawBitmap(Image1, x1, y1, null);
        Bitmap Image2 = BitmapFactory.decodeResource(getResources(), R.drawable.btnpre);
        canvas.drawBitmap(Image2, x2, y2, null);
        if(!drawAfterTenSecs) {
            handler.sendEmptyMessageDelayed (-1, 10000)
            drawAfterTenSecs = true;
        }
    }

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