Настройка андроидного поиска,

Мне нужно настроить панель поиска таким образом, чтобы в заранее определенное время сказать, 30 секунд, у меня должна быть точка в строке поиска. Эта продолжительность варьируется для каждого видео, поэтому, как разместить точную точку на строке поиска в определенную секунду

Вот некоторые возможности:

  1. Поставьте «точку» прямо над SeekBar . Не объясню это здесь подробно, потому что это тривиальная задача для создания андроида;
  2. Расширьте SeekBar , как и следующее (см. Это хорошее объяснение о пользовательских представлениях ):

     /** * Seek bar with dots on it on specific time / percent */ public class DottedSeekBar extends SeekBar { /** Int values which corresponds to dots */ private int[] mDotsPositions = null; /** Drawable for dot */ private Bitmap mDotBitmap = null; public DottedSeekBar(final Context context) { super(context); init(null); } public DottedSeekBar(final Context context, final AttributeSet attrs) { super(context, attrs); init(attrs); } public DottedSeekBar(final Context context, final AttributeSet attrs, final int defStyle) { super(context, attrs, defStyle); init(attrs); } /** * Initializes Seek bar extended attributes from xml * * @param attributeSet {@link AttributeSet} */ private void init(final AttributeSet attributeSet) { final TypedArray attrsArray = getContext().obtainStyledAttributes(attributeSet, R.styleable.DottedSeekBar, 0, 0); final int dotsArrayResource = attrsArray.getResourceId(R.styleable.DottedSeekBar_dots_positions, 0); if (0 != dotsArrayResource) { mDotsPositions = getResources().getIntArray(dotsArrayResource); } final int dotDrawableId = attrsArray.getResourceId(R.styleable.DottedSeekBar_dots_drawable, 0); if (0 != dotDrawableId) { mDotBitmap = BitmapFactory.decodeResource(getResources(), dotDrawableId); } } /** * @param dots to be displayed on this SeekBar */ public void setDots(final int[] dots) { mDotsPositions = dots; invalidate(); } /** * @param dotsResource resource id to be used for dots drawing */ public void setDotsDrawable(final int dotsResource) { mDotBitmap = BitmapFactory.decodeResource(getResources(), dotsResource); invalidate(); } @Override protected synchronized void onDraw(final Canvas canvas) { super.onDraw(canvas); final int width = getMeasuredWidth(); final int step = width / getMax(); if (null != mDotsPositions && 0 != mDotsPositions.length && null != mDotBitmap) { // draw dots if we have ones for (int position : mDotsPositions) { canvas.drawBitmap(mDotBitmap, position * step, 0, null); } } } } 

    Не забывайте о пользовательских attrs в res/values/attrs.xml :

     <resources> <declare-styleable name="DottedSeekBar"> <attr name="dots_positions" format="reference"/> <attr name="dots_drawable" format="reference"/> </declare-styleable> </resources> 

    И используя следующий код:

     setContentView(R.layout.main); final DottedSeekBar bar = (DottedSeekBar) findViewById(R.id.seekBar); bar.setDots(new int[] {25, 50, 75}); bar.setDotsDrawable(R.drawable.dot); 

    С макетом main.xml:

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.com/apk/res/com.example.TestApp" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <com.example.TestApp.DottedSeekBar android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/seekBar" /> </LinearLayout> 

    Или просто один файл main.xml:

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.com/apk/res/com.example.TestApp" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <com.example.TestApp.DottedSeekBar android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/seekBar" custom:dots_positions="@array/dots" custom:dots_drawable="@drawable/dot" /> </LinearLayout> 

    Вы можете получить следующее изображение: Введите описание изображения здесь

  3. Обратитесь к этому примеру для получения дополнительных идей;

Что касается ввода точек в определенное «время»: SeekBar – это не время, поэтому вам нужно предоставить любую логику, связанную с временем.

Intereting Posts
Как я могу отобразить диалоговое окно из приемника для широковещания Android? Использование sendBroadcast () Android parse push-уведомление и новый GCM генерируют неправильный токен устройства и не активируют уведомление о синтаксическом разборе Как я могу принудительно запустить метод onPrepareOptionsMenu? Настроить представление контекстного меню в android? Как сохранить строку действий / заголовка, но скрыть панель уведомлений Kotlin on android: Не удается найти основной объединенный манифест. Что вызывает эту ошибку? StopSelf () vs stopSelf (int) vs stopService (Intent) Расширяемый элемент в списке на Android Gps статус включен / отключен широковещательный приемник Как реализовать загрузку большего количества функций в android с помощью phonegap? Скрыть панель действий в фрагменте вызывает NullPointerException? Настройка изображения в элементе ListView с помощью SimpleCursorAdapter и ViewBinder Учебник Google OpenGL Google учит неправильной линейной алгебре? Mkdirs возвращает false для каталога на SD-карте, в то время как родительский каталог доступен для записи