创建自定义android布局

时间:2012-02-13 06:22:41

标签: android android-layout

我是android的新手。只是想知道我们如何创建UI布局,类似于下面附带的图像。我有创建基本布局的知识,请指导我一些示例代码示例或任何可能对我有帮助的参考。

我在每行的左侧都有标签,在右侧有旋转器。 屏幕上显示的行数将根据服务器响应动态决定。所以我不能用XML硬编码完整的视图。

对此有任何帮助,我们非常感谢。提前谢谢。

enter image description here

3 个答案:

答案 0 :(得分:3)

按如下方式创建布局:

<LinearLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:id="@+id/llTitle"
           android:background="#ffffff"
           android:gravity="center">
           <TextView android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:text="Title">
     </LinearLayout>
     <LinearLayout android:layout_width="fill_parent"
                   android:layout_height="fill_parent"
                   android:background="#FF00FF">
                   <LinearLayout android:layout_width="fill_parent"
                                 android:layout_height="wrap_content"
                                 android:background="@drawable/customshape"
                                 amdroid:id="@+id/llContainer"/>

                   <Button android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:text="button"
                           android:id/button1"/>
             </LinearLayout>

     </LinearLayout>

customshape.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
     <gradient android:startColor="#SomeGradientBeginColor" android:endColor="#SomeGradientEndColor" 
            android:angle="270"/> 

    <corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp" 
     android:topLeftRadius="7dp" android:topRightRadius="7dp"/> 
</shape> 

row.xml //创建rox.xml以包含textview和微调器。

在您的活动循环中

将视图添加到llContainer

LinearLayout llContainer=(LinearLayout)findViewById(R.id.llContainer);
for(int i0;i<list.size();i++)
{
      LinearLayout llView=inflater.inflate(R.layout.row, null);
      //set attributes of textview and spinner
      llContainer.addView(llView);
}

答案 1 :(得分:1)

最好采取ListView,使用Label和Spinner设计包含列表项的自定义适配器。

您只需将动态值(行)传递给自定义适配器。

答案 2 :(得分:0)

这是一个例子。尝试自定义

<?xml version="1.0" encoding="UTF-8"?>

http://schemas.android.com/apk/res/android”     机器人:ID = “@ + ID / authnet_auth_buttons”     机器人:layout_below = “@ ID / authnet_error_text”     机器人:layout_width = “WRAP_CONTENT”     机器人:layout_height = “WRAP_CONTENT”     机器人:layout_centerHorizo​​ntal = “真”     机器人:layout_marginTop = “20dp” &GT;

<Button android:id="@+id/authnet_auth_cancel_button"
android:text="Cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/authnet_error_text"/>

<Button android:id="@+id/authnet_auth_login_button"
android:text="Login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/authnet_error_text"/>

enter image description here

对于值,您必须使用Spinner Widget

对于动态视图,请参阅 How to lay out Views in RelativeLayout programmatically?