Android:带有进度条的EditText?

7
我正在构建一个浏览器,并在WebView顶部拥有地址栏(作为EditText)。我想要做的是在EditText的背景中以图形方式呈现页面的加载,就像iPhone浏览器中一样。这是否可能?
谢谢
更新
到目前为止,我已尝试了ClipDrawable方法。我所做的是采用默认的可绘制android.R.drawable.editbox_background并创建两个版本-白色背景和蓝色背景(用于显示进度)。然后我会创建一个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。现在的问题是出现了奇怪的问题,比如:白色的可绘制区域太大或者它会移动到顶部。

你觉得呢?

3个回答

4
看一下这个链接,它讲解了如何重写ProgressBar的onDraw()方法并在其上绘制文本。这应该至少能帮助你入门。

3

您可以通过将两个图像/形状设置为EditText的背景Drawable,并通过编程方式更改它们的宽度来完成此操作。


肯定有可能是Galaxy Tab浏览器的工作方式。我认为Damp走在了正确的道路上。棘手的部分将是使其仍然显示正常的EditText框架。也许您可以编辑drawable,使除了框架以外的所有内容都透明,然后将进度条放在其下面。 - FoamyGuy
@Alex1987 一个例子需要我花费很多时间去完成,但是有很多关于如何更改背景绘图/制作复合绘图等方面的资源。请注意,正如@Tim所说,保留框架会很困难,我非常确定您将无法使用EditText的原生框架。 - Damp

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接