如何在android中的对话框中显示自定义加载栏

时间:2011-12-12 17:20:19

标签: android dialog android-asynctask loading custom-component

我有一个应用程序,允许用户从列表中选择单选按钮。选择单选按钮后,会出现如下所示的自定义对话框:enter image description here

我想显示一个动画,显示在使用aynctask类下载实际图像时正在运行的仓鼠。请求的图像下载完成后,应显示在屏幕上(替换仓鼠动画)。

所以,我的问题是:我怎样才能实现这一目标?我尝试使用gif框架加载器,但这在对话框中不起作用,但是,我可以显示旋转图像,但我希望加载条更有趣,所以我选择了运行的仓鼠。 以上方法来自here

此外,用户应该能够单击关闭按钮,即使图像未加载(如果图像URL被破坏)。

编辑:这是不起作用的示例:

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class MainActiviy extends Activity implements OnClickListener{
Button start, stop;
ImageView imageView;   
AnimationDrawable frameAnimation;   

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);  

    imageView = (ImageView)findViewById(R.id.blankImageView);

    start = (Button)findViewById(R.id.start);
    stop = (Button)findViewById(R.id.stop);

    imageView.setBackgroundResource(R.drawable.spin_animation);   
    frameAnimation = (AnimationDrawable) imageView.getBackground();  

    start.setOnClickListener(this);
    stop.setOnClickListener(this);

    //does not start the animation
    frameAnimation.start();
}

public void onClick(View v) {
    switch(v.getId()) {
    case R.id.start:
        frameAnimation.start();
        break;
    case R.id.stop:
        frameAnimation.stop();   
        break;
    }
}
}

// main.xml布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" 
android:layout_height="fill_parent">

<ImageView android:layout_width="wrap_content"  
    android:id="@+id/blankImageView"  
    android:layout_height="wrap_content"/> 

<Button android:layout_width="wrap_content" 
    android:layout_height="wrap_content"        
    android:id="@+id/start"  
    android:text="start"/> 

<Button android:layout_width="wrap_content" 
    android:layout_height="wrap_content"  
    android:id="@+id/stop"  
    android:text="stop"/>         
</LinearLayout>

// res / drawable文件夹中的spin_animation.xml文件

<?xml version="1.0" encoding="utf-8"?>  
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"  
    android:oneshot="false">  
    <item android:drawable="@drawable/frame1" android:duration="60" />  
    <item android:drawable="@drawable/frame2" android:duration="60" />  
    <item android:drawable="@drawable/frame3" android:duration="60" />  
    <item android:drawable="@drawable/frame4" android:duration="60" />  
</animation-list>

//和frames

如何在不点击开始按钮的情况下制作图像动画?

0 个答案:

没有答案