这是我第一次涉足Android世界,而且我无法通过代码对齐按钮。无论我设置哪个Param(BELOW,RIGHT_OF等),它们都会堆叠在一起。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/screen2Layout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
</RelativeLayout>
SecondScreenActivity.java:
public class SecondScreenActivity extends Activity {
private static final String TAG = "SecondScreenActivity";
private MjpegView mv;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.screen2);
RelativeLayout.LayoutParams relativeLayoutParams =
new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
mv = new MjpegView(this);
addContentView(mv, relativeLayoutParams);
Button zoomIn = new Button(this);
zoomIn.setText("Zoom In");
zoomIn.setTextColor(Color.BLUE);
zoomIn.setBackgroundColor(Color.LTGRAY);
int zoomInID = View.generateViewId();
zoomIn.setId(zoomInID);
this.addContentView(zoomIn, relativeLayoutParams);
Button zoomOut = new Button(this);
zoomOut.setText("Zoom Out");
zoomOut.setTextColor(Color.BLUE);
zoomOut.setBackgroundColor(Color.TRANSPARENT);
int zoomOutID = View.generateViewId();
zoomIn.setId(zoomOutID);
RelativeLayout.LayoutParams zoomOutParam = relativeLayoutParams;
zoomOutParam.addRule(RelativeLayout.RIGHT_OF, zoomInID);
this.addContentView(zoomOut, zoomOutParam);
那么,我在这里做错了什么?感谢。
答案 0 :(得分:0)
我不知道this.addContentView
正在做什么,但似乎您对不同的视图使用相同的RelativeLayout.LayoutParams
实例。每个视图都必须有自己的实例。
答案 1 :(得分:0)
对于这样一个简单的布局,为什么不使用方向设置为的LinearLayout? 水平。
此外,您可以将它们放在相对布局xml中,然后访问它们以进行任何操作 你想要的改变。 findViewById()。这是更传统的方式,使它更容易 做化妆品布局的改变。
我在这里看不到任何需要你以编程方式执行此操作的内容。