Android:作为占位符的进度条

Android:作为占位符的进度条,android,progress-bar,Android,Progress Bar,我希望知道如何使用进度条微调器在获取图像时成为占位符。我在里面放了一个动画.gif,但很快我就发现.gif在安卓系统上玩得不好。这是我现在的代码: public void displayImage(String url, CarActivity activity, ImageView imageView) { if(imageMap.containsKey(url)) imageView.setImageBitmap(imageMap.get(url));

我希望知道如何使用进度条微调器在获取图像时成为占位符。我在里面放了一个动画.gif,但很快我就发现.gif在安卓系统上玩得不好。这是我现在的代码:

public void displayImage(String url, CarActivity activity, ImageView imageView) {
        if(imageMap.containsKey(url))
            imageView.setImageBitmap(imageMap.get(url));
        else {
            queueImage(url, activity, imageView);
            imageView.setImageResource(R.drawable.loading);

        }
    }
如何使用内置微调器作为占位符,并可能将其覆盖在另一个图像上,而不是将图像设置为my loading.gif

谢谢

你真正的问题是“如何将一个视图置于另一个视图之上”。在您的情况下,似乎您希望后面有一个ImageView,前面有一个ProgressBar。(ProgressBar名称有点不直观,因为默认情况下它不是一个条,而是一个小的旋转动画)

在当前具有ImageView的布局中,创建RelativeLayout。在RelativeLayout中,首先放置ImageView,然后放置ProgressBar。设置ProgressBar的android:visibility属性=“invisible”,当希望看到它时,将其设置为在代码中可见:view.setVisibility(view.visible);(或不可见)

将RelativeLayout的大小设置为wrap_内容,并对ImageView执行相同的操作。对于ProgressBar,您可能希望硬编码一个小尺寸,例如40度宽度和高度。如果希望进度条位于图像中间,请将其布局参数设置为“centerInParent”。

您真正的问题是“如何将一个视图置于另一个视图之上”。在您的情况下,似乎您希望后面有一个ImageView,前面有一个ProgressBar。(ProgressBar名称有点不直观,因为默认情况下它不是一个条,而是一个小的旋转动画)

在当前具有ImageView的布局中,创建RelativeLayout。在RelativeLayout中,首先放置ImageView,然后放置ProgressBar。设置ProgressBar的android:visibility属性=“invisible”,当希望看到它时,将其设置为在代码中可见:view.setVisibility(view.visible);(或不可见)

将RelativeLayout的大小设置为wrap_内容,并对ImageView执行相同的操作。对于ProgressBar,您可能希望硬编码一个小尺寸,例如40度宽度和高度。如果希望将ProgressBar的布局参数设置为“centerInParent”,使其位于图像的中间。

我将研究如何使用在ImageView和ProgressBar小部件之间切换

将ViewAnimator添加到XML布局中,然后在活动中执行以下操作:

ViewAnimator switch = (ViewAnimator) findViewById(R.id.your_id);
ImageView image = new ImageView(this);
ProgressBar loading = new ProgressBar(this);

switch.addView(loading, 0, myLayoutParams);
switch.addView(image, 1, myLayoutParams);
其中addView()的第一个字段是您正在添加的子视图,第二个字段是它在Animator中的索引,第三个字段是您定义的LayoutParams对象(我没有显示)

我还没有测试代码,但这应该可以显示Android ProgressBar小部件

然后,无论何时加载图像,请调用:

switch.showNext();
此外,该示例似乎与您想要查看它时所需的类似。

我将研究如何使用在ImageView和ProgressBar小部件之间切换

将ViewAnimator添加到XML布局中,然后在活动中执行以下操作:

ViewAnimator switch = (ViewAnimator) findViewById(R.id.your_id);
ImageView image = new ImageView(this);
ProgressBar loading = new ProgressBar(this);

switch.addView(loading, 0, myLayoutParams);
switch.addView(image, 1, myLayoutParams);
其中addView()的第一个字段是您正在添加的子视图,第二个字段是它在Animator中的索引,第三个字段是您定义的LayoutParams对象(我没有显示)

我还没有测试代码,但这应该可以显示Android ProgressBar小部件

然后,无论何时加载图像,请调用:

switch.showNext();

此外,如果您想查看该示例,该示例似乎与您需要的类似。

发布此示例后,我意识到@mah提出了一个更简单的解决方案。我会先试试这个。在发布这篇文章之后,我意识到@mah想出了一个更简单的解决方案。我想先试试那个。