【问题标题】:which layout i have to use to make design like shown below我必须使用哪种布局来进行如下所示的设计
【发布时间】:2018-02-15 12:19:48
【问题描述】:

我曾尝试使用圆形布局、相对布局、约束布局来设计。我已经正确设计了它,但对齐方式在设备之间发生了变化。如何解决这个问题。

<io.github.francoiscampbell.circlelayout.CircleLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:cl="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    cl:cl_angleOffset="0"
    cl:cl_angle="60"
    cl:cl_direction="clockwise"
    cl:cl_centerView="@+id/centerView">

    <Switch
        android:id="@+id/centerView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hii all"
        android:textColor="@color/error_color"
        android:textSize="18sp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"/>

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <SeekBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</io.github.francoiscampbell.circlelayout.CircleLayout>

【问题讨论】:

  • 我的关系图如何参考视图平衡布局,以便它可以在任何设备上运行
  • 对齐方式我不想从设备更改为设备
  • 感谢您的建议,我找到了解决方案,我将删除它

标签: android android-layout


【解决方案1】:

您可以根据需要使用ConstraintLayout 进行圆对齐(当然,使用圆约束)。检查以下示例:

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

    <com.example.developer.widget.CircleImageView
        android:id="@+id/center"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:src="@color/colorPrimary"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />


    <com.example.developer.widget.CircleImageView
        android:id="@+id/first"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@color/colorAccent"
        app:layout_constraintCircle="@+id/center"
        app:layout_constraintCircleAngle="90"
        app:layout_constraintCircleRadius="110dp" />

    <TextView
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Book"
        app:layout_constraintLeft_toLeftOf="@+id/first"
        app:layout_constraintTop_toBottomOf="@+id/first" />

    <com.example.developer.widget.CircleImageView
        android:id="@+id/second"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@color/colorAccent"
        app:layout_constraintCircle="@+id/center"
        app:layout_constraintCircleAngle="145"
        app:layout_constraintCircleRadius="110dp" />

    <TextView
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Shop"
        app:layout_constraintLeft_toLeftOf="@+id/second"
        app:layout_constraintTop_toBottomOf="@+id/second" />

    <com.example.developer.widget.CircleImageView
        android:id="@+id/third"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@color/colorAccent"
        app:layout_constraintCircle="@+id/center"
        app:layout_constraintCircleAngle="215"
        app:layout_constraintCircleRadius="110dp" />

    <TextView
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Book"
        app:layout_constraintLeft_toLeftOf="@+id/third"
        app:layout_constraintTop_toBottomOf="@+id/third" />


    <com.example.developer.widget.CircleImageView
        android:id="@+id/fourth"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@color/colorAccent"
        app:layout_constraintCircle="@+id/center"
        app:layout_constraintCircleAngle="270"
        app:layout_constraintCircleRadius="110dp" />

    <TextView
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Book"
        app:layout_constraintLeft_toLeftOf="@+id/fourth"
        app:layout_constraintTop_toBottomOf="@+id/fourth" />


</android.support.constraint.ConstraintLayout>

输出:

【讨论】:

  • 我也在研究与此类似的布局。在我的布局中,主圈应该拉伸整个布局(带有一些填充),所以我设置了layout_constraintDimensionRatio="1:1"。你有什么想法我可以如何正确设置半径吗?还是我必须使用布局大小限定符?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-23
  • 2017-03-30
  • 2019-08-02
相关资源
最近更新 更多