可旋转的按钮3圈按钮

问题描述 投票:0回答:1

我一直在研究Android问题。我没有在互联网上找到任何东西来推进这一探索...

我正在寻找一个圆圈中的3个按钮,它们将在另一个圆圈内(见图)

最终目标是我可以在每个按钮中插入一个图像,并且当我单击一个按钮时,后者会围绕中心点旋转。

但是目前,我已经阻止了3个按钮的创建。我测试了这个:

<shape
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:innerRadiusRatio="20"
 android:shape="ring"
 android:thicknessRatio="0"
 android:useLevel="false">
 <solid android:color="@android:color/holo_green_dark"/>
</shape>

但是:1.单击始终位于最后一个按钮上,以显示...2.我不知道如何在此处添加图片

我也尝试在Paint中绘制3个圆,然后将它们用作具有不同高度的背景Button。可以,但是按钮的形状仍然是矩形。因此它没有优化。

有人有解决方案吗?我知道这是可能的,因为我已经在不同的应用程序中看到了。我只是不知道该如何实现...

提前感谢

编辑:enter image description here我想要这样的东西。X个“独立”环,我可以分别旋转每个环。

3 Button circles

android button shapes
1个回答
0
投票

尝试此

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    <!-- android:innerRadiusRatio="20" -->
    android:shape="ring"
    android:thicknessRatio="0"
    android:useLevel="false">
    <solid android:color="@android:color/holo_green_dark"/>
</shape>

将此设置为按钮的背景,然后向按钮添加“手动高度和宽度”。您的按钮将显示。

编辑使用Framelayout使您的按钮彼此重叠。根据您的喜好更改按钮的大小。单击按钮时使按钮动画化(旋转)。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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/button"
        android:layout_width="180dp"
        android:layout_height="180dp"
        android:layout_gravity="center"
        android:background="@drawable/circle_button"
        android:text="@string/button"
        android:textColor="@android:color/white" />

    <Button
        android:id="@+id/button1"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_gravity="center"
        android:background="@drawable/circle_button_gray"
        android:text="@string/button1"
        android:textColor="@android:color/white" />

</FrameLayout>
© www.soinside.com 2019 - 2024. All rights reserved.