выбор времени с прокруткой для Android?

Я хочу иметь в моем основном виде два колеса прокрутки для выбора времени, одно содержит цифры от 01-24, другое 00-60, с прыжками 5 (0,5,10..55) Есть ли что-то готовое для такого предмет? аналогично http://code.google.com/p/mobiscroll/, только для Android -в. Выбор времени довольно раздражает ... мне нужно нажимать +-, пока я не выберу то, что хочу. я предпочитаю что-то более интуитивно понятное. Какие варианты у меня есть для такой вещи?


person buddy123    schedule 22.02.2013    source источник
comment
Я сделал что-то подобное. Но список не круговой. Вам нужен код?   -  person Fahad Ishaque    schedule 22.02.2013
comment
Мне все равно, если он круглый, мне просто нужно что-то прокручиваемое. Нечего эксперту. Тем временем я попробую другие предложения   -  person buddy123    schedule 22.02.2013
comment
Это работает для моего. Он создает эффект привязки в представлении списка. Если вам нужен xml, дайте мне знать.   -  person Fahad Ishaque    schedule 22.02.2013
comment
Вы можете добавить свой собственный фон, чтобы все выглядело лучше.   -  person Fahad Ishaque    schedule 22.02.2013


Ответы (3)


Ничего не встроено, но вы можете попробовать следующее: http://code.google.com/p/android-wheel/

person Raymond P    schedule 22.02.2013
comment
Я попытался импортировать папку как проект Android, и ошибка: [2013-02-22 15:27:42 - Main] Unable to resolve target 'android-3' [2013-02-22 15:44:29 - wheel] Unable to resolve target 'android-7' - person buddy123; 22.02.2013

Здесь вы найдете полный проект с исходным кодом. TestWheel.zip

  1. скачать TestWheel.zip по ссылке.
  2. Импортируйте его в свой Eclipse
  3. Преобразуйте этот проект в проект библиотеки (щелкните правой кнопкой мыши проект testWheel ==> свойства ==> android ==> установите флажок is library).
  4. Добавьте этот проект библиотеки в свой проект.
  5. скопируйте и вставьте следующий код в свой файл XML.

введите здесь описание изображения

person Qadir Hussain    schedule 22.02.2013
comment
какие ошибки вы получаете сейчас? я реализовал это даже вчера. это работает хорошо для меня. - person Qadir Hussain; 22.02.2013
comment
ошибки, такие как [2013-02-22 15:27:42 - Main] Unable to resolve target 'android-3' [2013-02-22 15:44:29 - wheel] Unable to resolve target 'android-7' - person buddy123; 22.02.2013
comment
stackoverflow .com/questions/11278319/ - person Qadir Hussain; 23.02.2013
comment
установите ‹uses-sdk android:minSdkVersion=7/› в файле манифеста. - person Qadir Hussain; 23.02.2013
comment
и очистите свой проект также - person Qadir Hussain; 23.02.2013

Вот ваш файл hour_listView. Просто установите для него строковый адаптер. Предполагая, что вы можете заполнить listView с помощью ArrayAdapter.

        hr_list.setOnScrollListener(new OnScrollListener() {

            int currentcount,topitem,firstitem,lastitem;
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
                if (scrollState == SCROLL_STATE_IDLE && currentcount == 4) {
                    while (scrollState == SCROLL_STATE_TOUCH_SCROLL) {
                    }

                    LinearLayout item = (LinearLayout) view.getChildAt(0);
                    int height = item.getHeight();
                    int top = Math.abs(item.getTop()); // top is a negative value

                    if (top <= height/2){
                        view.smoothScrollToPositionFromTop(topitem, 0, 3000);
                        Log.d("Switch", "up");
                    }
                    if(top> height/2){
                        view.smoothScrollToPositionFromTop(topitem+1, 0,3000);
                        Log.d("Switch", "down");
                    }
                }
            }

А затем установите button.clickListener, и вы получите номер центральной строки видимого списка.

int list_hr = hr_list.getFirstVisiblePosition() - hr_list.getHeaderViewsCount();

Несколько ключевых моментов. * установить высоту разделителя для listView 1dp. * Используйте линейную компоновку для заполнения списка. Высота строки должна составлять 1/3 от общей высоты списка (в dp).

XML для списка и кнопки

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="Snap List"
    android:textSize="25sp" />

<ListView
    android:id="@+id/listView1"
    android:layout_width="100dp"
    android:layout_height="120dp"
    android:fadingEdgeLength="33dp"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="73dp"
    android:background="@drawable/lisbg"
    android:scrollbars="none" >
</ListView>

<StackView
    android:id="@+id/stackView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/listView1"
    android:layout_marginLeft="103dp"
    android:layout_marginTop="57dp"
    android:layout_toRightOf="@+id/textView1" >
</StackView>

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/textView1"
    android:layout_marginRight="58dp"
    android:text="OK" />

<Button
    android:id="@+id/button2"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button1"
    android:layout_below="@+id/button1"
    android:text="Scroll 5" />

XML для строки.

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:textSize="25sp"
    android:gravity="center_vertical|center_horizontal"
    android:layout_gravity="center_vertical|center_horizontal"
    android:text="TextView" />

person Fahad Ishaque    schedule 22.02.2013