1

Я пытаюсь написать приложение Camera в Android. Я хотел использовать SeekBar для увеличения/уменьшения изображения. Вот идет мой макет:Android SeekBar не движется плавно

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     > 
     <FrameLayout 
      android:id="@+id/camera_preview" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      /> 

     <SeekBar android:id="@+id/sliderZoom" 
      android:layout_width="160dp" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:layout_gravity="center" 
      /> 
    </LinearLayout> 


    <RelativeLayout 
     android:orientation="vertical" 
     android:layout_width="50dp" 
     android:layout_height="fill_parent" 
     android:background="#000000"> 

     <ImageButton 
      android:layout_height="50dp" 
      android:layout_width="wrap_content" 
      android:src="@drawable/flash" 
      android:scaleType="fitXY" 
      android:layout_alignParentTop="true" 
      android:onClick="onFlashClick" /> 
     <ImageButton 
      android:layout_height="50dp" 
      android:layout_width="wrap_content" 
      android:src="@drawable/zoom" 
      android:scaleType="fitXY" 
      android:layout_centerInParent="true" 
      android:onClick="onZoomClick" /> 
    </RelativeLayout> 
</LinearLayout> 

Если удалить либо из ImageButton, мои SeekBar движется плавно. Но он не движется плавно, если у меня есть оба ImageButton. Я попытался запустить приложение как в режимах portrait, так и в режиме landscape. Проблема остается такой же в обоих режимах.

Как его решить?

EDIT: Согласно некоторым комментариям, я чувствую, что добавляю дополнительную информацию. Прямо сейчас нет обработчика событий для SeekBar. Он не увеличивает или уменьшает масштаб камеры. Это всего лишь один простой SeekBar 'с максимальным значением, заданным для некоторого случайного целого. Для моего случая я попробовал от 5 до 500. В каждом случае у меня проблема. Путем плавного перемещения я имею в виду, когда я пытаюсь сместить его с прикосновением, он должен двигаться легко, не должен останавливаться. Если есть ImageButton, я могу без помех сдвинуть указатель SeekBar влево/вправо. Но если есть два ImageButton, указатель не перемещается так легко. Кажется, что каждый раз, когда указатель перемещается на один блок, в потоке пользовательского интерфейса запускается некоторая трудоемкая операция, которая останавливает пользовательский интерфейс от захвата события касания. Хотя факт заключается в том, что в потоке пользовательского интерфейса не требуется много времени. Для любого типа вычислений не существует ни одной функции. Я даже не добавлял предварительный просмотр камеры в FrameLayout, или камера не была инициализирована

Подробнее Редактировать: Я только что узнал один интересный поворот события. Если источником изображения является одинаковое изображение (неважно, какой) для ImageButton, то он отлично работает. Но если у меня два разных изображения для двух ImageButton, тогда это начинает вызывать проблему. Надеюсь, эта новая информация поможет понять, что происходит. Разрешение изображений составляет 1299x1299 и менее 40kb.

+0

Что вы подразумеваете под «move smooth»? И когда вы ожидаете плавного движения? Когда он перемещается прикосновением или когда вы устанавливаете уровень масштабирования вручную? Также вы должны указать свой Java-код. – leoderprofi

+0

Я отредактировал мой вопрос с более подробной информацией по вашему вопросу. – user1120675

+0

Я попробовал макет, который вы указали, с двумя изображениями правильного размера и не смог воспроизвести проблему. Кажется, что это в вашем коде. – leoderprofi

ответ

0

На самом деле это не проблема. Уровень масштабирования камеры - это не так много. В основном уровень масштабирования составляет 5-7. Таким образом, поскольку вы использовали SeekBar в качестве регулятора масштабирования, это означает, что максимальный уровень вашего браузера равен 7 (suppoose). По этой причине он буферизирует уровень, когда вы тянете панель. Для вашего теста вы можете установить значение seekBar.setMax (30), а затем вытащить свою поисковую панель. Я надеюсь, что вы получите это гладкое

+0

Вы игнорируете тот факт, что я сказал, что он плавно перемещается, если я удалю один из ImageButton. Таким образом, это не связано с тем, что уровень масштабирования составляет 5-7, так как для того же уровня масштабирования он плавно перемещается, когда есть только одна кнопка. Также, чтобы убедиться, я установил максимальное значение 500 для SeekBar. Тем не менее у него такая же проблема. – user1120675

 Смежные вопросы

  • Нет связанных вопросов^_^