Как добавить линию в качестве жеста при переходе от одного изображения к другому? - PullRequest
0 голосов
/ 23 сентября 2011

Я делаю свой собственный Pattern Lock для телефона Android, я сделал кодирование, как когда я нажимаю на изображение, оно сохраняет целое число в массиве, и когда пользователь повторно вводит тот же пароль, он совпадает как с массивами, так и с Openблокировка соответственно, мой код работает нормально, но теперь я должен добавить жест в виде линии при переходе от одного изображения к другому (как в шаблоне блокировки), а также я хочу сохранить целые числа в массиве, когда я касаюсь изображениявместо того, чтобы щелкнуть по нему ...

подсказайте мне, как это сделать, ниже приведен пример кода для событий щелчка изображения

public void Image1(View view) {
            // Toast.makeText(this, "You clicked Image 1!",
            // Toast.LENGTH_SHORT).show();
            myArray[0] = 1;
            // builder.append("" + myArray[0] + " ");
            // Toast.makeText(this, myArray, Toast.LENGTH_LONG).show();
            ImageView kk = (ImageView) view;
            Drawable d = getResources().getDrawable(R.drawable.unlock);
            kk.setImageDrawable(d);

        }

        public void Image2(View view) {
            // Toast.makeText(this, "You clicked Image 2!",
            // Toast.LENGTH_SHORT).show();
            myArray[1] = 2;
            ImageView kk = (ImageView) view;
            Drawable d = getResources().getDrawable(R.drawable.unlock);
            kk.setImageDrawable(d);
        }

        public void Image3(View view) {
            // Toast.makeText(this, "You clicked Image 3!",
            // Toast.LENGTH_SHORT).show();
            myArray[2] = 3;
            ImageView kk = (ImageView) view;
            Drawable d = getResources().getDrawable(R.drawable.unlock);
            kk.setImageDrawable(d);
        }

        public void Image4(View view) {
            // Toast.makeText(this, "You clicked Image 4!",
            // Toast.LENGTH_SHORT).show();
            myArray[3] = 4;
            ImageView kk = (ImageView) view;
            Drawable d = getResources().getDrawable(R.drawable.unlock);
            kk.setImageDrawable(d);
        }

        public void Image5(View view) {
            // Toast.makeText(this, "You clicked Image 5!",
            // Toast.LENGTH_SHORT).show();
            myArray[4] = 5;
            ImageView kk = (ImageView) view;
            Drawable d = getResources().getDrawable(R.drawable.unlock);
            kk.setImageDrawable(d);
        }

        public void Image6(View view) {
            // Toast.makeText(this, "You clicked Image 6!",
            // Toast.LENGTH_SHORT).show();
            myArray[5] = 6;
            ImageView kk = (ImageView) view;
            Drawable d = getResources().getDrawable(R.drawable.unlock);
            kk.setImageDrawable(d);
        }

        public void Image7(View view) {
            // Toast.makeText(this, "You clicked Image 7!",
            // Toast.LENGTH_SHORT).show();
            myArray[6] = 7;
            ImageView kk = (ImageView) view;
            Drawable d = getResources().getDrawable(R.drawable.unlock);
            kk.setImageDrawable(d);
        }

        public void Image8(View view) {
            // Toast.makeText(this, "You clicked Image 8!",
            // Toast.LENGTH_SHORT).show();
            myArray[7] = 8;
            ImageView kk = (ImageView) view;
            Drawable d = getResources().getDrawable(R.drawable.unlock);
            kk.setImageDrawable(d);
        }

        public void Image9(View view) {
            // Toast.makeText(this, "You clicked Image 9!",
            // Toast.LENGTH_SHORT).show();
            myArray[8] = 9;
            ImageView kk = (ImageView) view;
            Drawable d = getResources().getDrawable(R.drawable.unlock);
            kk.setImageDrawable(d);
        }

1 Ответ

1 голос
/ 05 октября 2011

Реализация onTouchEvent(MotionEvent ev), с ACTION_DOWN, ACTION_MOVE, ACTION_UP.По мере движения пальца нарисуйте линию от предыдущей координаты до текущей координаты.Получить координату с помощью ev.getX() ev.getY()Я только что подумал о двух решениях в настоящее время:

  1. При обнаружении события касания на ACTION_DOWN нарисуйте прозрачный ВИД поверх родительского вида, сделайте его Canvas и рисуйте, пока обрабатывается ACTION_MOVE.
  2. Используйте SurfaceView вместо обычного просмотра.Образец в SurfaceView для рисования: http://www.droidnova.com/playing-with-graphics-in-android-part-ii,160.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...