Android - создание анимации «Перетащите вверх, чтобы заблокировать» - PullRequest
0 голосов
/ 24 августа 2011

Есть ли у кого-нибудь даже отдаленное представление о том, как создать анимацию, подобную той, которая показана в Pocket App , где пользователь может перетащить небольшую полосу (например, панель уведомлений) от нижней части экрана до конца, чтобы приложение само блокировалось и изменяло текущую активность?

Мне просто интересно, как сделать анимацию, если она встроена в Android или что-то более сложное. Кто-нибудь может дать мне несколько советов о том, как искать / создавать похожую анимацию, пожалуйста?

Для тех, кто не знаком с анимацией и не знает приложение / не понял мое описание, вы можете увидеть его здесь

Спасибо, ребята.

1 Ответ

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

Вы можете опробовать выдвижной ящик.

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

Примерно так

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:
                        {                           
                            if(v.getTop()>=0 && v.getBottom()<sliderFrame.getMeasuredHeight()){
                                int topPos = (int)event.getRawY()-(v.getHeight()*2+v.getHeight());
                                if(topPos < 0) {
                                    topPos=0;
                                } else if(topPos > (sliderFrame.getMeasuredHeight()-v.getMeasuredHeight())){
                                    topPos = (sliderFrame.getMeasuredHeight()-v.getMeasuredHeight()) -1;
                                }   
                                iconParams.topMargin = topPos;
                                v.setLayoutParams(iconParams);
                                sliderThumbFake.setLayoutParams(iconParams);
                            }                           
                            break;
                        }
                        case MotionEvent.ACTION_UP:
                        {                           

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

Код внутри инструкций case может оказаться бесполезным, поскольку я подал в суд на мое требование.Но вот как вы делаете перетаскивание вида.

...