android - 我必须使用哪种布局来制作如下所示的设计

标签 android android-layout

我曾尝试使用圆形布局、相对布局、约束布局来设计。我已经正确设计了它,但对齐方式因设备而异。如何解决该问题。

<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>

how to design shown below

最佳答案

您可以根据需要使用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>

输出:

Circle Constraint

关于android - 我必须使用哪种布局来制作如下所示的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48779618/

相关文章:

android - Fragments 安卓版本<3.0

java - android 中的自动旋转器选择

android - 如何在 Android Spinner 中仅显示 3 个字符?

android - 在抽屉导航中单击项目时在 viewpager 中切换 fragment

android - 如何为多个屏幕分辨率定义可绘制文件夹名称(Nexus 10 和 Galaxy Tab 10 之间的冲突)?

android - 如何在 Kotlin/Native 中将 const char* 转换为 KString?

android - 如何动态显示 Android fragment

android - 为什么 Android 不使用最新的 gradle 版本?

android - 使用 google drive sdk 列出具有相同扩展名的文件

android - Android 上在整个应用程序 session 的 Activity 死亡/重启之间保存数据的最佳做法是什么?