如何使用FrameLayout在屏幕中心对齐ImageView?(附带Java代码)

4

我需要以编程方式将一个ImageView居中在屏幕上,而不使用XML布局。

实际上,我正在使用FrameLayout,但是我不知道如何将其居中在FrameLayout上。

以下是我到目前为止所拥有的代码:

        FrameLayout fl = new FrameLayout(this.getApplicationContext());
    splash = new ImageView(getApplicationContext());
    splash.setImageResource(R.drawable.logo);
    splash.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    fl.addView(splash);
    fl.setBackgroundColor(Color.BLACK);
    setContentView(fl);
3个回答

6
我认为像这样的代码可以帮助您完成任务:
    LayoutParams centerParams = new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);

    centerParams.gravity =  Gravity.CENTER;
    fl.setLayoutParams(centerParams);

请查看此页面获取更多相关信息。

我在“centerParams.gravity”这一行遇到了错误 ---> gravity 无法解析或不是一个字段。 - NullPointerException
你导入了哪个LayoutParams类? - FoamyGuy

5
我认为这应该可以解决问题:
fl.setForegroundGravity(Gravity.CENTER);

  • center无法解析为变量
  • gravity无法解析或不是一个字段
- NullPointerException

2

ImageView没有重力属性,它有layout_gravity属性。


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