Android: EditText с индикатором выполнения?

Я создаю браузер, и у меня есть адресная строка (как EditText) поверх WebView. Я хотел бы представить загрузку страницы графически в фоновом режиме EditText, как в браузере iphone. Это возможно?

Спасибо


ОБНОВИТЬ

До сих пор я пробовал подход ClipDrawable. Что я сделал, так это взял стандартный android.R.drawable.editbox_background и создал 2 версии - белый фон и синий (чтобы показать прогресс). Затем я бы создал LayerDrawable вот так:

 barDrawable = addressBar.getBackground();

    Drawable progress = getResources().getDrawable(R.drawable.editbox_progress);
    cbarDrawable = new ClipDrawable(progress, Gravity.LEFT, ClipDrawable.HORIZONTAL);
    cbarDrawable.setLevel(0);

    layerlist = new LayerDrawable(new Drawable[] { barDrawable, cbarDrawable });

    addressBar.setBackgroundDrawable(layerlist);

а затем я бы вызвал setLevel по мере загрузки. Теперь проблема в том, что возникают странные проблемы, такие как: белый вытягиваемый объект слишком велик или перемещается наверх.

Что вы думаете?


person Alex1987    schedule 18.02.2011    source источник


Ответы (3)


Взгляните на эта ссылка, в которой говорится о переопределении метода onDraw () ProgressBar и рисовании поверх него текста. По крайней мере, с этого вы должны начать.

person Matt    schedule 18.02.2011

Вероятно, вы можете сделать это, используя 2 изображения / фигуры, установленные в качестве фона EditText Drawable, и программно изменив их ширину.

person Damp    schedule 18.02.2011
comment
Определенно возможно, что именно так работает браузер вкладок галактики. Я думаю, что Дамп идет правильным путем. Сложная часть состоит в том, чтобы заставить его по-прежнему отображать обычный фрейм EditText. Возможно, вы можете отредактировать возможность рисования, чтобы сделать все, кроме фрейма, прозрачным, а затем поместить под ним индикатор выполнения. - person FoamyGuy; 18.02.2011
comment
@ Alex1987 пример потребует от меня довольно много времени, но есть масса ресурсов о том, как изменять фоновые чертежи / создавать составные чертежи и т.д ... Однако обратите внимание, что, как сказал @Tim, будет сложно оставьте фрейм, и я почти уверен, что вы не сможете использовать собственный фрейм EditText. - person Damp; 18.02.2011

Возможно, вы могли бы использовать ClipDrawable в качестве фона для текста.

person Martin Stone    schedule 18.02.2011