Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Grafity
59 / 4 / 1
Регистрация: 31.07.2013
Сообщений: 42
1

Анимация одного пункта в ListView

01.08.2013, 10:15. Просмотров 1596. Ответов 3
Метки нет (Все метки)

Собственно, есть у меня список контактов в ListView, заполняемом моим адаптером. При движении справа-налево по контакту а меня происходит звонок (как у Samsung TouchWIZ). Вопрос, как сделать анимацию или какую-нибудь визулизацию при этом действии?
Мне нужно, чтобы как-то видно было, по какому пункту происходит движение. Подойдет выделение какое-нибудь при нажатии, как у того-же самсунга, и смена надписи на что-то вроде " <- сдвиньте для звонка".

Собственно, сам адаптер, где все это происходит:
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
public class ContactsAdapter extends BaseAdapter {
 
    Context ctx;
    LayoutInflater lInflater;
    ArrayList<Contact> objects;
    float fromPosition;
    String number;
    DisplayMetrics DispMetrics;
    
    ContactsAdapter(Context context, ArrayList<Contact> contacts, DisplayMetrics metrics) {
        ctx = context;
        objects = contacts;
        DispMetrics = metrics;
        lInflater = (LayoutInflater) ctx
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      }
    
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return objects.size();
    }
 
    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return objects.get(position);
    }
 
    @Override
    public long getItemId(int id) {
        // TODO Auto-generated method stub
        return id;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        
        View view = convertView;
        
        if (view == null) {
              view = lInflater.inflate(R.layout.item, parent, false);
            }
        
        final Contact p = getContact(position);
            
        ((TextView) view.findViewById(R.id.name_tv)).setText(p.name);
        ((TextView) view.findViewById(R.id.num_tv)).setText(p.tel);
        
        
        OnTouchListener listener = new OnTouchListener() {
            
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                number = p.tel;
                switch (event.getAction())
                {
                case MotionEvent.ACTION_DOWN:
                    fromPosition = event.getX();
                    break;
                case MotionEvent.ACTION_UP: 
                    
                    float toPosition = event.getX();
                    analizeSwipe(fromPosition, toPosition);
                    
                }
                return true;
            }
        };
        
        view.setOnTouchListener(listener);
        
        
        return view;
    }
    
    Contact getContact(int position) {
        return ((Contact) getItem(position));
      }
    
    
    public void analizeSwipe(float from, float to){
        
        
        float device_x = DispMetrics.widthPixels;
        
        float minSwype = (device_x / 100) * 30;
        
        if (from > to && (from-to) > minSwype){
            
            Log.i("log_tag","Номер = " + number);
            
            Intent callIntent = new Intent(Intent.ACTION_CALL); 
            callIntent.setData(Uri.parse("tel:" + number));
            ctx.startActivity(callIntent);
        }
    }
    
 
}


Заранее спасибо всем за ответы!

Добавлено через 20 минут
Пробовал в onTouchListener менять бэкграунд у View - ничего не происходит.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2013, 10:15
Ответы с готовыми решениями:

Добавление пункта в ListView
Всем привет,подскажите пожалуйста, есть два активити с Listview в одном актививи список ListView с...

ListView подсветка выделенного пункта
Всем доброго времени суток! Понимаю, вопрос нубский, но никак не получается сделать navigation...

Выпадающее меню для каждого пункта ListView
Здравствуйте! Как реализовать подобное меню в списке? Я придумал только с использованием...

ListView и простой пример определения нажатого пункта
Здравствуйте! Брошу на лайоут ListView и Button Набью на listView две строчки - &quot;Москва&quot;,...

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

3
chizz
985 / 507 / 102
Регистрация: 19.03.2013
Сообщений: 3,108
Записей в блоге: 19
Завершенные тесты: 1
01.08.2013, 10:59 2
Глянь это, может поможет.
Зы. Я не смотрел...

1
Grafity
59 / 4 / 1
Регистрация: 31.07.2013
Сообщений: 42
01.08.2013, 11:43  [ТС] 3
Цитата Сообщение от chizz Посмотреть сообщение
Глянь это, может поможет.
Зы. Я не смотрел...

Кликните здесь для просмотра всего текста


Спасибо! Скачал исходники - уже много полезного для себя в них нашел.
Удастся ли скопипастить анимацию, вот в чем вопрос. Буду пробовать.
0
Grafity
59 / 4 / 1
Регистрация: 31.07.2013
Сообщений: 42
02.08.2013, 12:43  [ТС] 4
Не осилил я это все.

За то, благодаря этому примеру, вытащил onTouchListener из адаптера в активность и там прикрутил простую анимацию сдвига в xml файле.
0
02.08.2013, 12:43
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2013, 12:43

Как обратиться к элементу (button) внутри пункта списка (ListView)
Здравствуйте! Помогите, пожалуйста Есть активити с ListView. В каждом пункте списка есть пару...

Анимация ListView
В чем суть:При вертикальном свайпе - кнопки прокручиваются. Крайняя кнопка - плавно уменьшается, а...

Не работает анимация в строках ListView
Пытаюсь реализовать серверный запрос, после чего удалить элемент ListView, по которому кликнул...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru