如何在按钮和圆形图像之间添加线条?

时间:2018-02-18 05:05:04

标签: android performance android-layout android-studio android-fragments

任何人都可以帮我如何在按钮和圆形图像之间添加线条,如下所示:

enter image description here

我在活动中添加了八个按钮,中间有一个圆形图像,现在我想通过一条线连接图像和按钮,但我不能。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
android:orientation="vertical">

<de.hdodenhof.circleimageview.CircleImageView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/profile_image"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:layout_width="96dp"
    android:layout_height="96dp"
    android:src="@drawable/tpo"
    app:civ_border_width="2dp"
    app:civ_border_color="#200e0e"/>

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/profile_image"
    android:layout_alignParentTop="true"
    android:layout_alignStart="@+id/profile_image"
    android:layout_marginTop="78dp"
    android:text="Button" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_centerVertical="true"
    android:layout_marginLeft="12dp"
    android:layout_marginStart="12dp"
    android:text="Button" />

<Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="65dp"
    android:text="Button" />

<Button
    android:id="@+id/button4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignEnd="@+id/button2"
    android:layout_alignRight="@+id/button2"
    android:layout_alignTop="@+id/button3"
    android:text="Button" />

<Button
    android:id="@+id/button5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button2"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginEnd="18dp"
    android:layout_marginRight="18dp"
    android:text="Button" />

<Button
    android:id="@+id/button6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button3"
    android:layout_alignLeft="@+id/button5"
    android:layout_alignStart="@+id/button5"
    android:text="Button" />

<Button
    android:id="@+id/button7"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button"
    android:layout_alignLeft="@+id/button5"
    android:layout_alignStart="@+id/button5"
    android:text="Button" />

<Button
    android:id="@+id/button8"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button"
    android:layout_alignLeft="@+id/button2"
    android:layout_alignStart="@+id/button2"
    android:text="Button" />


</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

在GIMP或Photoshop等软件中创建一条从中心(根据需要)出来的8条线的图像。将其设置为父布局的背景图像。这似乎是一个黑客,但可能是最不复杂的解决方案。

如果要动态创建线条,它看起来并不简单。看看其他一些答案:

  1. How to draw a line in android
  2. Android: Connect buttons with lines

答案 1 :(得分:0)

我实际上不喜欢使用相对布局,但实际上你可以做的是在框架布局中绘制线条,然后在当前视图的线条上绘制。

简单示例:

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

    <View
        android:layout_width="3dp"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:background="#00ffff"/>

    <View
        android:layout_width="match_parent"
        android:layout_height="3dp"
        android:layout_gravity="center"
        android:background="#00ffff"/>

    <YourView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </YourView>

</FrameLayout>

我还建议:

  1. 使用线性布局而不是相对布局。在这种情况下你甚至不需要框架布局。
  2. 如果你喜欢或有问题,可以使用海拔或翻译z来播放'z'位置。