我有要放在应用程序中的图像和文本。 我需要文本在图像上方居中。 一切都通过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);
}
我确定我错过了一些东西,并且用几行代码都无法解决。 我很乐意得到帮助:)
答案 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 });
});