我正在构建一个显示大型联系人照片的联系人应用。我需要在按钮顶部(靠近底部)添加一个带有每个联系人的联系人姓名的标签,但是我不知道如何在彼此之上获得两个视图。我不能简单地使用settext,因为我需要在标签上添加半透明背景。
编辑: 我设法将它放在首位,但我无法弄清楚如何将它放在按钮的底部。
RelativeLayout icon = new RelativeLayout(context);
// Create button
Button button = new Button(context);
button.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
layout.addView(button);
// Create label
TextView label = new TextView(context);
label.setText(name);
label.setBackgroundColor(Color.argb(120, 0, 0, 0));
label.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
icon.addView(button);
icon.addView(label);
然而,文字出现在图像的顶部,我希望它像这样在底部:
对于xml,这将是:android:layout_alignBottom="@+id/myButton"
,但我正在以编程方式执行此操作,但我还没有找到方法。如何将标签贴在按钮附近?
答案 0 :(得分:1)
试试这个
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center" >
<Button
android:id="@+id/button1"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:gravity="right"
android:text="John"
android:background="@drawable/button_action_active" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="test textView" />
</FrameLayout>
</LinearLayout>
您可以通过
动态执行此操作 TextView lable = new TextView(this);
lable.setLayoutParams(new LayoutParams(android.widget.LinearLayout.LayoutParams.WRAP_CONTENT, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT));
lable.setTextSize(25);
lable.setGravity(Gravity.CENTER);
lable.setText("John");
Button button = new Button(this);
button.setBackgroundResource(R.drawable.button_action_active);
button.setLayoutParams(new LayoutParams(android.widget.LinearLayout.LayoutParams.MATCH_PARENT, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT));
FrameLayout fl = new FrameLayout(this);
fl.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
fl.addView(button);
fl.addView(lable);
setContentView(fl);
答案 1 :(得分:-1)
要执行此操作,您可以使用框架布局。框架布局的文档可以在这里找到 - http://developer.android.com/reference/android/widget/FrameLayout.html
但是,框架布局是折旧的(如果我没记错的话)。所以我建议使用相对布局。在相对布局中,您可以设置按钮的位置,然后为textview提供属性android:layout_alignLeft=@id/something
和android:layout_alignRight="@id/Something"