Я пытаюсь написать приложение 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.
Что вы подразумеваете под «move smooth»? И когда вы ожидаете плавного движения? Когда он перемещается прикосновением или когда вы устанавливаете уровень масштабирования вручную? Также вы должны указать свой Java-код. – leoderprofi
Я отредактировал мой вопрос с более подробной информацией по вашему вопросу. – user1120675
Я попробовал макет, который вы указали, с двумя изображениями правильного размера и не смог воспроизвести проблему. Кажется, что это в вашем коде. – leoderprofi