以编程方式在TextView上居中放置TextView

时间:2018-09-29 22:42:59

标签: android android-imageview textview center android-relativelayout

我有要放在应用程序中的图像和文本。 我需要文本在图像上方居中。 一切都通过RelativeLayout对象以编程方式完成。 由于某种原因,我只能成功将TextView垂直居中放置在ImageView上。

这是创建RelativeLayout的函数:

 private void buildPost(Context context){

    Random rnd = new Random();
    SquareImageView postBgImgIV = new SquareImageView(context);
    postBgImgIV.setBackgroundColor(Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)));
    postBgImgIV.setImageResource(R.drawable.clear);


    TextView postContentTV = new TextView(context);
    postContentTV.setText(this.postContent);
    postContentTV.setTextSize(42);
    //postContentTV.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
    postContentTV.setGravity(Gravity.CENTER);


    post = new RelativeLayout(context);
    post.addView(postBgImgIV);
    post.addView(postContentTV);
}

我确定我错过了一些东西,并且用几行代码都无法解决。 我很乐意得到帮助:)

2 个答案:

答案 0 :(得分:1)

问题已解决! 实际上,我需要定义新的RelativeLayout.LayoutParams,然后将textView LayoutParams定义为新的RelativeLayout.LayoutParams。

代码:

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);
    params.addRule(RelativeLayout.CENTER_IN_PARENT);
    postContentTV.setLayoutParams(params);

答案 1 :(得分:0)

您需要在textview中添加布局参数

app.post('/values', async (req, res) => {
  const index = req.body.index;

  if (parseInt(index) > 40) {
    return res.status(422).send('Index too high');
  }

  redisClient.hset('values', index, 'Nothing yet!', () => redisPublisher.publish('insert', index));

  pgClient.query('INSERT INTO values(number) VALUES($1)', [index]);
  res.send({ working: true });
});