在警告框中播放gif动画

4

我想在警告框中播放gif动画。我正在尝试使用

public class Fruits extends Activity {


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

    ImageButton apple = (ImageButton)findViewById(R.id.imageButton1);
    apple.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            AlertDialog.Builder builder = new AlertDialog.Builder(Fruits.this);
            GIFWebView view = new GIFWebView(this, "file:///android_asset/apple.gif");
            setContentView(view);
            builder.create().show();
        }

    });

}

GIFWebView类


public class GIFWebView extends WebView {

public GIFWebView(Context context, String path) {
    super(context);
    loadUrl(path);
    // TODO Auto-generated constructor stub
}


}

但是却无法。

是的,我正在调用它。但是我所采取的方法正确吗? - Meghs
是的,抱歉出现错误,但它仍然无法正常工作。 - Meghs
哦,我错过了这个。你应该在onClick方法中使用builder.setView(view)而不是setContentView()。setContentView()会为整个活动设置视图,而你需要将其设置为对话框。 - c05mic
实际上我遇到的错误是在这里 "new GIFWebView(this, "file:///android_asset/apple.gif");",错误是 "将构造函数GIFWebView(Context,String)更改为GIFWebView(OnCLickListener,String)"。 - Meghs
是的,对于您的用例,不需要扩展WebView。相反,您可以只使用普通的WebView,设置其布局参数,并在调用show()后调用webView.loadUrl(URL)。 - c05mic
显示剩余8条评论
1个回答

2
请确保imageButton1已在activity_fruits布局xml中设置为ImageButton的android:id。
请将代码更新为以下内容:
apple.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            AlertDialog.Builder builder = new AlertDialog.Builder(TestKeyboard.this);
            WebView view = new WebView(Fruits.this);
            view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
            builder.setView(view);
            builder.create().show();
            view.loadUrl("file:///android_asset/apple.gif");
        }

    });

非常高兴它有帮助! - c05mic
还有一件事,请问我应该在哪里添加"finish();",以便在gif循环一次后对话框消失。我尝试将其放置在“view.loadUrl(“file:///android_asset/apple.gif”);”之后,但它没有起作用。 - Meghs
我不确定如何检测循环完成,但让对话框消失的方法是dialog.dismiss()。finish()会结束整个活动。 - c05mic
只需使用 dialog.dismiss()。 - c05mic

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