Android 约束约束半径没有响应

Android 约束约束半径没有响应,android,android-layout,android-constraintlayout,Android,Android Layout,Android Constraintlayout,我正在使用,我希望避免使用半径的固定大小值,以便我的布局能够响应所有屏幕大小 我现在拥有的是app:layout\u constraintCircleRadius=“100dp”上的buttonB,这个固定大小不会对所有屏幕大小产生影响 我看到了,但我想知道如何(如果可能的话)使半径动态化,而不是任何变通方法来达到预期的结果 我正在使用此布局: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.

我正在使用,我希望避免使用半径的固定大小值,以便我的布局能够响应所有屏幕大小

  • 我现在拥有的是
    app:layout\u constraintCircleRadius=“100dp”
    上的
    buttonB
    ,这个固定大小不会对所有屏幕大小产生影响

  • 我看到了,但我想知道如何(如果可能的话)使半径动态化,而不是任何变通方法来达到预期的结果

  • 我正在使用此布局:

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout 
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      tools:context=".MainActivity">
    
    <Button
        android:id="@+id/buttonA"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
         android:text="A"/>
    
    <Button
        android:id="@+id/buttonB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="@+id/buttonA"
        app:layout_constraintCircle="@+id/buttonA"
        app:layout_constraintCircleAngle="40"
        app:layout_constraintCircleRadius="100dp"
        app:layout_constraintEnd_toEndOf="@+id/buttonA"
        app:layout_constraintStart_toStartOf="@+id/buttonA"
        app:layout_constraintTop_toTopOf="@+id/buttonA"
        android:text="B" />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    
    
    


    此外,我还检查了,它还包含固定大小值,如您所见:


    您需要为宽度和高度设置int值,然后它将工作

    您可以使用

    android SDK提供了一个新的大小单位——sdp(可伸缩dp)。这 大小单位根据屏幕大小进行缩放。它可以帮助Android开发者 支持多个屏幕

    范例

    app:layout_constraintCircleRadius="@dimen/_85sdp"
    

    您可以在运行时计算请求的半径,并通过设置
    ConstraintLayout.LayoutParams

    以编程方式更改半径,这是一个非常宽泛的答案,您能详细说明吗?因为
    android:layout\u width=“800dp”
    是int值,但它根本不会响应。看起来很有希望,我很快会检查这个答案