有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在安卓系统中,如何将每秒变化的文本集中?

我有一些Android代码,可以让一段文字倒计时

final TextView mTextField = new TextView(this);

            mTextField.setTextColor(Color.RED);
            mTextField.setTextSize(25);
            mTextField.setTypeface(tf);
            final Handler handler = new Handler();
            final Runnable r = new Runnable() {
                public void run() {

                    mTextField.setText("Days : " + getTimes()[0] + " Hours : "
                            + getTimes()[1] + " Minutes : " + getTimes()[2]
                            + " Seconds : " + getTimes()[3]);

                    handler.postDelayed(this, 1000);

                }
            };

            handler.postDelayed(r, 1000);
            setContentView(mTextField);

我的问题是,我无论如何都不能格式化这个文本,我希望它像屏幕的中心一样,但由于文本实际上是Java而不是XML,我该如何说将其嵌入到relativeLayout中,以便控制文本打印到屏幕上的位置

谢谢


共 (1) 个答案

  1. # 1 楼答案

    可以定义框架布局的父级,将重心设置为“中心”,然后添加该文本视图:

    FrameLayout frame = new FrameLayout(this);
    
    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,FrameLayout.LayoutParams.FILL_PARENT,Gravity.CENTRAL)
    frame.setLayoutParams(params);
    
    
     final TextView mTextField = new TextView(this);
    
     mTextField.setTextColor(Color.RED);
     mTextField.setTextSize(25);
     mTextField.setTypeface(tf);
     final Handler handler = new Handler();
          final Runnable r = new Runnable() {
                public void run() {
                   mTextField.setText("Days : " + getTimes()[0] + " Hours : "
                            + getTimes()[1] + " Minutes : " + getTimes()[2]
                            + " Seconds : " + getTimes()[3]);
    
                    handler.postDelayed(this, 1000);
    
                }
            };
    
            handler.postDelayed(r, 1000);
    
    frame.addView(mTextField);
    setContentView(frame);
    

    更新1:修复了框架布局。布局参数