以编程方式将子视图添加到FrameLayout,然后更改它们的位置

我正在做一个增强现实应用程序,我需要在相机视图上显示一些对象。 我创build一个FrameLayout,我添加我的相机视图,然后我添加我的AR对象(现在我想用TextView)。 在下面的代码我添加到我的FrameLayout的TextView不显示…

任何人都可以帮忙? 一旦我看到fs ,我怎样才能以编程方式改变它的位置?

UPDATE

我试图用ImageView而不是TextView,它的工作原理…为什么?

 public class ARActivity extends Activity{ private CBCameraView cv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); cv = new CBCameraView(this); FrameLayout rl = new FrameLayout(this); rl.addView(cv, GlobalVars.screenWidth, GlobalVars.screenHeight); setContentView(rl); // this works... /*ImageView fs = new ImageView(this); fs.setImageResource(R.drawable.icon); rl.addView(fs);*/ TextView fs = new TextView(this); fs.setText("Bar seco"); fs.setTextColor(android.R.color.white); fs.setTextSize(1,14); fs.setLayoutParams(new ViewGroup.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); rl.addView(fs); } } 

Solutions Collecting From Web of "以编程方式将子视图添加到FrameLayout,然后更改它们的位置"

问题可能在于您设置文本颜色的方式。 setTextColor()采用颜色值参数,而不是资源ID。 你应该打电话

 fs.setTextColor(ContextCompat.getColor(context, android.R.color.white)); 

如果要以编程方式更改子视图位置,则可以通过布局参数调整边距或使用setX / setY方法。 看看这里我怎样才能dynamic地设置Android的视图的位置?

添加r1.setLayoutParams 🙂