Перетащите текстовое представление на изображение? - PullRequest
0 голосов
/ 24 августа 2011

может любой помочь мне, как перетащить текстовое представление на весь вид изображения.я нашел из этого перетащить текстовое представление в Android здесь текстовое представление является статическим, в моем приложении текстовое представление и изображения динамически изменяются.`@Override public boolean onTouchEvent (событие MotionEvent) {

  switch (event.getAction()) {
     case MotionEvent.ACTION_DOWN:
         // Remember our initial down event location.
         startX = event.getRawX();
         startY = event.getRawY();
         break;
    case MotionEvent.ACTION_MOVE:
         float x = event.getRawX();
         float y = event.getRawY();
        // Calculate move update. This will happen many times
        // during the course of a single movement gesture.
        scrollByX = x - startX; //move update x increment
        scrollByY = y - startY; //move update y increment
        startX = x; //reset initial values to latest
        startY = y;
        invalidate(); //force a redraw
        break;
      }
   return true; //done with this event so consume it
 } 

я написал этот код, но он не работает должным образом.

1 Ответ

2 голосов
/ 24 августа 2011

Вы всегда можете программно изменить изображение и текст существующего вида, используя методы setText.

Есть много перетаскиваний, если вы гуглите это. настоятельно рекомендуем вам попробовать их. По сути, вы реализуете OnTouchListener в TextView как

textview.setOntouchListener (слушать);

OnTouchListener onThumbTouch = new OnTouchListener()
    {
        @Override
        public boolean onTouch(View v, MotionEvent event) 
        {   
            switch(v.getId())
            {
                case R.id.slider_thumb_id:
                {
                    switch(event.getAction())
                    {
                        case MotionEvent.ACTION_MOVE:
                        {                           


                        }
                        case MotionEvent.ACTION_UP:
                        {                           

                        }
                    }
                    break;
                }
            }
            return true;
        }
    };

Здесь из атрибута события вы получаете значение x и y и событие касания и используйте это, чтобы изменить положение просмотра текста. Я сделал это путем добавления / вычитания значений полей.

EDIT: Это то, что я сделал, чтобы обновить позицию моего взгляда Смотри event.getRawY (); собирается дать вам расстояние от родительского представления. Поэтому, если я получу event.getRawY () = 50. Я знаю, что текстовое представление должно быть на 50 пикселей сверху.

LinearLayout.LayoutParams iconParams = (LinearLayout.LayoutParams) 
   v.getLayoutParams();
iconParams.topMargin = 50;
v.setLayoutParams(iconParams);

Так что теперь выбранное мной представление находится на расстоянии 50 пикселей от верхней части родительского представления.

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