0

进度条不居中对齐我为 android 中的 .gif 图像支持制作了一个 customView。我在这方面取得了成功,但目前该视图与我活动的左上角对齐。我希望它与我的活动中心对齐。请告诉我我该怎么做。

我的代码如下:

GifwebView  view = new GifwebView(this, "file:///android_asset/p3.gif");
view.setBackgroundColor(Color.parseColor("#00000000"));
RelativeLayout rel = (RelativeLayout) findViewById(R.id.rl_pics);
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
rel.setBackgroundColor(Color.parseColor("#00000000"));
view.setLayoutParams(p);
rel.addView(view);

自定义视图

public class GifwebView extends WebView {

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

}
4

2 回答 2

1

你的activity主布局(RelativeLayout),它的高度和宽度应该是match_parent,所以它会占据整个屏幕,并且它的重力应该设置为center,这样它里面的元素就会被定位到屏幕的中心。

XML:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rl_pics"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">
</RelativeLayout>

活动:

RelativeLayout rel = (RelativeLayout) findViewById(R.id.rl_pics);
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

GifwebView  view = new GifwebView(this, "file:///android_asset/p3.gif");
view.setBackgroundColor(Color.parseColor("#00000000"));
view.setLayoutParams(p);

rel.addView(view);
于 2014-09-06T11:04:34.877 回答
0
p.addRule(RelativeLayout.CENTER_HORIZONTAL);
view.setGravity(Gravity.CENTER_VERTICAL);

这应该有效。此外,如果您希望活动占据整个屏幕而不是填充内容所需的屏幕,您应该使用 match_parent 而不是 wrap_content。

编辑:如果您的自定义视图没有实现该setGravity(int)方法,您可以这样做:

p.addRule(RelativeLayout.CENTER_HORIZONTAL|RelativeLayout.CENTER_IN_PARENT, view.getId());
于 2014-09-06T11:08:25.400 回答