Android编程布局以编程方式

时间:2014-07-17 06:57:02

标签: android android-layout relativelayout programmatically-created

enter image description here

如何以编程方式在android中进行此布局。

我只想要一个不完整编码的想法。

3 个答案:

答案 0 :(得分:2)

这是答案,但不是直接答案。这是我个人以编程方式创建复杂布局的方法。

在XML中创建相同的布局。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/some_big_image" />

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:background="#DD000000" >

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/imageView2"
        android:layout_toRightOf="@+id/imageView2"
        android:text="TextView"
        android:textColor="@android:color/white" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/imageView2"
        android:layout_toRightOf="@+id/imageView2"
        android:text="TextView"
        android:textColor="@android:color/white" />
</RelativeLayout>

现在从顶级家长开始到孩子

    RelativeLayout mParent = new RelativeLayout(this);
    RelativeLayout.LayoutParams mParentParams = new RelativeLayout.LayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
    mParent.setLayoutParams(mParentParams);

    ImageView mBigImageView = new ImageView(this);
    mBigImageView.setLayoutParams(mParentParams);
    mParent.addView(mBigImageView);

当您练习时,您可以直接编码,而无需创建xml。

答案 1 :(得分:0)

基本理念:

  1. 创建一个RelativeLayout,其中包含一个ImageView和两个与TextView对齐的

  2. 设置RelativeLayout的alpha以调整透明度

答案 2 :(得分:0)

你可以有一个相对布局,其中包含一个用于大图像的图像视图,在它下面还有一个包含图像和文本的线性布局,如“珍珠大陆......”,衬里布局的背景应该是50-60%透明。 使用形状为LL创建背景。并将其设置为父(相对)布局的对齐底部。 希望这可以帮助你