в моем приложении У меня есть диалог с поисковым баром, который задает размер моей кисти и ниже этого я хотел сделать простой предварительный просмотр этого размера. Мне удалось создать ImageView чуть ниже этой стрелки и нарисовать круг внутри. Пока я делаю прогресс больше, чем раньше, все работает нормально, круг динамически растет, как и предполагалось, но когда я опускаю прогресс, ничего не происходит. Я предполагаю, что каждый раз, когда я меняю прогресс, значение нового круга появляется на старом, поэтому, когда я хочу сделать круг меньше, его не видно. Я пробовал такие методы, как setImageBitmap(null)
или setImageResource(0)
, но это не сработало. Моего код выглядит следующим образом:Динамическое обновление размера круга в ImageView с помощью SeekBar - Android
LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layoutInflater.inflate(R.layout.brush_size,null);
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setView(view)
.setTitle("Change brush size");
alertDialog = builder.create();
alertDialog.show();
final ImageView imageView = (ImageView)view.findViewById(R.id.image_view);
final Bitmap preview = Bitmap.createBitmap(100,100,Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(preview);
final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(mPaintView.getColor());
SeekBar sb = (SeekBar)view.findViewById(R.id.seekBar);
sb.setMax(50);
sb.setProgress(mPaintView.getSize());
sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
mPaintView.setSize(progress);
canvas.drawCircle(50,50,mPaintView.getSize(),paint);
imageView.setImageBitmap(preview);
}
Есть ли способ, чтобы действительно очистить мою ImageView каждый раз я изменить индикатор, поэтому меньшие круги могут быть видимыми?
Большое вам спасибо, работал как шарм! – BednarQ