【问题标题】:How to align the curved images in a xml layout?Is it possible to align programmatically in java?如何在 xml 布局中对齐弯曲的图像?是否可以在 java 中以编程方式对齐?
【发布时间】:2015-08-19 05:17:15
【问题描述】:

以下是我必须在我的项目中实现的图像:

最后应该是这样的:

帮助将是值得表扬的,并提前感谢。

【问题讨论】:

  • 我可以建议你使用RelativeLayoutmargins/padding,因为你需要相互添加图像。
  • 为什么不将所有这些用作具有透明度的图像?
  • @hrskrs 我玩过它,但它没有达到预期
  • @NaderAyyad 我们不能使用透明度,因为我们将这些图像用作按钮
  • @sid_dude 你是什么意思?您可以将它们用作一个图像,然后在容器布局上创建 onClicklistener ...如果单击时未由子级处理,则将其向上传递视图层次结构给其父级。

标签: java android xml android-layout android-linearlayout


【解决方案1】:

希望这会有所帮助。抱歉命名不当。,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="20dp" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/dummy"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal"
            android:visibility="invisible" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/a"
                android:orientation="vertical" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/a"
                android:orientation="vertical" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/a"
                android:orientation="vertical" >
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1.1"
            android:orientation="horizontal" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1.1"
                android:background="@drawable/a"
                android:orientation="vertical"
                android:visibility="visible" >
            </LinearLayout>

            <LinearLayout
                android:id="@+id/dummy2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:background="@drawable/a"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>

            <LinearLayout
                android:id="@+id/dummy3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/a"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/dummy1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal"
            android:visibility="invisible" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/a"
                android:orientation="vertical" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/a"
                android:orientation="vertical" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/a"
                android:orientation="vertical" >
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/LinearLayout01"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="50dp"
            android:layout_weight="1"
            android:orientation="horizontal"
            android:visibility="visible" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1.8"
                android:background="@drawable/c"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/c"
                android:orientation="vertical"
                android:visibility="visible" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1.8"
                android:background="@drawable/c"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1.8"
            android:orientation="horizontal" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/a"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>

            <LinearLayout
                android:id="@+id/LinearLayout04"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/c"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>

            <LinearLayout
                android:id="@+id/LinearLayout02"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/c"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/LinearLayout03"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal"
            android:visibility="invisible" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/c"
                android:orientation="vertical" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/c"
                android:orientation="vertical" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/c"
                android:orientation="vertical" >
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/LinearLayout1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal"
            android:visibility="visible" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="2.5"
                android:background="@drawable/c"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/c"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="2.5"
                android:background="@drawable/c"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1.05"
            android:orientation="horizontal" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/a"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>

            <LinearLayout
                android:id="@+id/LinearLayou"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:background="@drawable/c"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>

            <LinearLayout
                android:id="@+id/LinearL"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginRight="10dp"
                android:layout_weight="1"
                android:background="@drawable/d"
                android:orientation="vertical"
                android:visibility="visible" >

            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/Linea"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal"
            android:visibility="visible" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/c"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/d"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/c"
                android:orientation="vertical"
                android:visibility="invisible" >
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
</RelativeLayout>

</LinearLayout>

【讨论】:

    【解决方案2】:

    您可以使用RelativeLayoutmargins/padding,因为您需要在彼此上添加images。这里我给你一个例子,用你自己的图片:

    (请注意,我手动添加了width/height,并不关心naming,因为它只是为了测试目的,为您提供如何实现它的线索。因此,如果您使用@ 的height/width 987654328@,你也必须和他们的margins/padding一起玩)

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:gravity="center"
        android:layout_height="match_parent">
    
        <ImageView
            android:layout_marginLeft="85dp"
            android:layout_width="170dp"
            android:layout_height="170dp"
            android:src="@drawable/tt"
            />
    
        <ImageView
            android:layout_marginTop="70dp"
            android:layout_width="170dp"
            android:layout_height="170dp"
            android:src="@drawable/ll"/>
    
        <ImageView
            android:layout_marginTop="100dp"
            android:layout_marginLeft="90dp"
            android:layout_width="170dp"
            android:layout_height="170dp"
            android:src="@drawable/rr"/>
    
        <TextView
            android:gravity="center"
            android:layout_marginTop="130dp"
            android:layout_marginLeft="100dp"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="This is just a text"/>
    
    </RelativeLayout>
    

    地点:

    • tt 是顶部的曲线
    • rr 是右边的曲线
    • ll 是左边的曲线

    结果如下:

    【讨论】:

    • 感谢您的努力,但它并没有像我已经以这种方式完成的那样完成............应该在 ImageView 和 TextView 之间保持精确的差距...... ...
    • @sid_dude 正如我所说,这只是一个测试目的,向您展示如何实现您想要的目标。我也putted Text in the middle for you(see edited answer)。如果您想要更详细的内容,请在问题中提及。无论你在这里问什么,你都有。您也可以在其中给出确切的差距,但我们在这里是为了指导而不是解决您甚至没有尝试过的问题。无论如何,请查看已编辑的答案以获取有关如何做到这一点的指南。
    • 我肯定重新检查过它兄弟.....但是右曲线和左曲线没有保持相等的差距......我正在努力......你能不能多尝试一下,采用 170dp 的曲线大小......冒险希望你能帮助我......提前谢谢xxx,兄弟......
    • @sid_dude 这是我能为你做的最好的事情。如果您想要完美对齐的图像,您可以使用它们。否则,您必须找到另一种实施策略
    • 你可以看到你的不同之处是更紧凑的一个......尽管你做得很好......我仍在努力获得完美的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 2015-12-20
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多