Я пытаюсь изменить размер ImageView на основе прогресса SeekBar
Вот мой макет xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageView_pizzaSize_icon"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_centerInParent="true"
android:contentDescription="Pizza"
android:src="@drawable/pizza" />
<SeekBar
android:id="@+id/seekBar_pizzaSize"
style="@style/Widget.AppCompat.SeekBar.Discrete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="32dp"
android:layout_alignParentBottom="true"
android:progress="0" />
<TextView
android:id="@+id/textView_pizzaSize_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
tools:text="PIZZA SIZE" />
</RelativeLayout>
Внутри моего фрагмента я попробовал этот подход на основе этого ответа
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
int diff = i - previousProcess;
scaleImage(mImageView, diff);
previousProcess = i;
}
public void scaleImage(ImageView img, int scale) {
Bitmap bitmap = ((BitmapDrawable) img.getDrawable()).getBitmap();
float width = bitmap.getWidth();
float height = bitmap.getHeight();
width += scale * widthScaleRatio;
height += scale * heightScaleRatio;
bitmap = Bitmap.createScaledBitmap(bitmap, (int) width, (int) height,
true);
img.setImageBitmap(bitmap);
}
Но мой ImageView не изменяет размер, он сохраняет тот же размер оригинала, только немного меняя при изменении SeekBar.
Моя идея - открыть фрагмент с помощьюImageView занимает только 50% ширины, а SeekBar находится в позиции 0. Количество позиций, доступных для подбора, будет варьироваться.Когда SeekBar достигнет последнего индекса, ImageView будет занимать около 95% ширины, оставляя место для полей.
Я знаю, что в этой идее есть более сложные операции, чем в моем вопросе об изменении размера ImageView, но я представляю общую картину того, чтоЯ хочу добиться, может быть, помочь вам привести меня на правильный путь.Это будет частью действия, когда пользователь будет монтировать пиццу, сначала выбирая размер пиццы, и чем больше размер, тем больше ImageView.