【问题标题】:how can I set gravity to center in webview to play gif?如何在 webview 中将重力设置为中心以播放 gif?
【发布时间】:2016-12-08 07:50:20
【问题描述】:

我想在 alertdialog 中播放 gif。

我写了这段代码:

AlertDialog.Builder builder = new AlertDialog.Builder(myThis);
             builder.setCancelable(false);
             WebView view = new WebView(myThis); 
             view.loadUrl("file:///android_asset/gif_pokemon.gif");
             LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                     LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); 
             params.gravity=Gravity.CENTER;
             view.setLayoutParams(params);
             builder.setView(view);
             dlg_p=builder.create();
             WindowManager.LayoutParams wlmp = dlg_p.getWindow().getAttributes();       
             wlmp.gravity = Gravity.CENTER ; 
             dlg_p.show();

但问题是 gif 不在中心位置。它的重力是左的。

如何将其设置为居中?

【问题讨论】:

    标签: android android-webview android-alertdialog android-assets


    【解决方案1】:

    使用 LinearLayout 包装 WebView,

    • LinearLayout 的 LayoutParams 的宽度设置为 match_parent,高度设置为 wrap_content,如果需要完全居中,则也使用 match_parent 作为高度。

    • 设置LinearLayout的重心为center,也可以使用centerVertical或centerHorizo​​ntal。

    希望对你有帮助:)

    AlertDialog.Builder builder = new AlertDialog.Builder(myThis); builder.setCancelable(false);

        LinearLayout linearLayout = new LinearLayout(myThis);
        linearLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        linearLayout.setGravity(Gravity.CENTER);
    
        WebView view = new WebView(myThis);
        view.loadUrl("file:///android_asset/gif_pokemon.gif");
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        params.gravity=Gravity.CENTER;
        view.setLayoutParams(params);
    
        linearLayout.addView(view);
        builder.setView(linearLayout);
        dlg_p=builder.create();
        dlg_p.show();
    

    【讨论】:

    • 我不明白,我已经设置了匹配父级。我应该在我的代码中更改哪一部分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 2014-08-24
    • 1970-01-01
    • 2013-12-23
    • 2022-11-14
    • 2017-01-11
    • 1970-01-01
    相关资源
    最近更新 更多