【问题标题】:Get Layout XML to CustomView Layout将布局 XML 获取到 CustomView 布局
【发布时间】:2013-02-04 05:28:54
【问题描述】:

这是我希望实现的一个非常简单的布局。但是,我尝试了很多方法让我的 customView 出现在 Buttons 的侧面 - LinearLayout。但我失败了。任何帮助将不胜感激!
谢谢!

这是我在 MainActivity 中声明我的 CustomView 的地方。

public class Drawing extends Activity {

   mContent = (LinearLayout) findViewById(R.id.labelCreator);

   mSignature = new Resize(this, null);

   mContent.addView(mSignature);
........... 

我的 XML 布局

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/tools"
    android:id="@+id/Drawing"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:visibility="visible" >

    <LinearLayout
        android:id="@+id/interface2"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="bottom"
        android:layout_marginTop="0dp"
        android:background="#8b5a2b"
        android:orientation="horizontal" >

                <TableLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" >


                        <TableRow
                            android:id="@+id/tableRow9"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content" >

                            <TableLayout
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content" >

                                <TableRow
                                    android:id="@+id/tableRow1"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content" >

                                    <Button
                                        android:id="@+id/btnPhoto"
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:drawableTop="@drawable/camera2"
                                        android:text="Camera"
                                        android:textColor="#ffffff"
                                        android:textSize="25sp"
                                        android:typeface="serif" />

                                    <Button
                                        android:id="@+id/btnImage"
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:drawableTop="@drawable/image"
                                        android:text="Image"
                                        android:textColor="#ffffff"
                                        android:textSize="25sp"
                                        android:typeface="serif" />

                                </TableRow>

                                <TableRow
                                    android:id="@+id/tableRow2"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content" >

                                    <Button
                                        android:id="@+id/btnText"
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:drawableTop="@drawable/text"
                                        android:text="Text"
                                        android:textColor="#ffffff"
                                        android:textSize="25sp"
                                        android:typeface="serif" />

                                    <EditText
                                        android:id="@+id/editText1"
                                        android:layout_width="180dp"
                                        android:layout_height="wrap_content"
                                        android:ems="10"
                                        android:freezesText="false"
                                        android:hint="text"
                                        android:maxLength="10"
                                        android:maxLines="1"
                                        android:textAlignment="center"
                                        android:textColor="#e6e6fa"
                                        android:textSize="25sp"
                                        android:typeface="serif"
                                        android:visibility="visible" />

                                </TableRow>

                                <TableRow
                                    android:id="@+id/tableRow3"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content" >

                                    <Spinner
                                        android:id="@+id/color_spinner"
                                        android:layout_width="135dp"
                                        android:layout_height="wrap_content"
                                        android:textAlignment="center" />

                                    <Spinner
                                        android:id="@+id/fonts_spinner"
                                        android:layout_width="132dp"
                                        android:layout_height="wrap_content"
                                        android:textAlignment="center"
                                        app:context=".LabelCreator" />

                                </TableRow>

                                <TableRow
                                    android:id="@+id/tableRow4"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content" >

                                    <Button
                                        android:id="@+id/btnSave"
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:drawableTop="@drawable/save3"
                                        android:text="Save"
                                        android:textColor="#ffffff"
                                        android:textSize="25sp"
                                        android:typeface="serif" />

                                    <Button
                                        android:id="@+id/btnClear"
                                        android:layout_width="wrap_content"
                                        android:layout_height="wrap_content"
                                        android:drawableTop="@drawable/clear"
                                        android:text="Clear"
                                        android:textColor="#ffffff"
                                        android:textSize="25sp"
                                        android:typeface="serif" />

                                </TableRow>
                            </TableLayout>

                        </TableRow>

                        <Button
                            android:id="@+id/btnClose"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:drawableRight="@drawable/close"
                            android:shadowColor="#00000000"
                            android:text="Close"
                            android:textColor="#ffffff"
                            android:textSize="25sp"
                            android:typeface="serif" />

                            <Button
                                android:id="@+id/btnAbout"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="About"
                                android:textColor="#ffffff"
                                android:textSize="25sp"
                                android:typeface="serif" />

                </TableLayout>

    </LinearLayout>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="250dp"
        android:layout_height="85dp"
        android:maxLines="1"
        android:singleLine="true"
        android:text="TextView"
        android:textSize="20sp"
        android:visibility="invisible" />

</LinearLayout>

【问题讨论】:

    标签: android android-layout android-widget android-custom-view


    【解决方案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="horizontal"
        android:weightSum="10" >
    
        <LinearLayout
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="3"
            android:orientation="vertical" >
    
            <Button
                android:id="@+id/btnSave"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:drawableTop="@drawable/save3"
                android:text="Save"
                android:textColor="#ffffff"
                android:textSize="25sp"
                android:typeface="serif" />
    
            <Button
                android:id="@+id/btnClear"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:drawableTop="@drawable/clear"
                android:text="Clear"
                android:textColor="#ffffff"
                android:textSize="25sp"
                android:typeface="serif" />
    
            <Spinner
                android:id="@+id/color_spinner"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textAlignment="center" />
    
            <Spinner
                android:id="@+id/fonts_spinner"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textAlignment="center"
                app:context=".LabelCreator" />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="7" >
    // your custom view(Drawing area) will be here.
        </LinearLayout>
    
    </LinearLayout>
    

    这里的父布局有android:orientation="horizontal"
    所以它的所有子布局都将按列显示。
    如果您想要逐行显示,请制作android:orientation="vertical"。在这里,我将垂直用于具有 &lt;Button&gt;&lt;Spinner&gt; 控件的父布局。
    您将根据需要对其进行更改。
    希望这会有所帮助。

    【讨论】:

    • 感谢您的帮助。你在做什么是把控件放在上面?
    • 您还可以将滚动视图作为所有控件的父级,这样您就可以放置尽可能多的控件。但这只是一个建议
    • 您可以根据自己的要求对其进行更改:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    相关资源
    最近更新 更多