android开发中,点击一个按钮,周围出现三个按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android开发中,点击一个按钮,周围出现三个按钮相关的知识,希望对你有一定的参考价值。

android开发中,点击 一个按钮A,这个按钮A的周围出现三个按钮,这个功能怎么实现?
如果可以的话,能不能让这三个按钮A围绕形成一个半圆呢?
谢谢

先把3个按钮隐藏,点击了按钮A,就显示3个按钮

我试了下,可以的

test.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <Button
        android:id="@+id/btA"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:text="按钮A" />
    <Button
        android:id="@+id/btB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@id/btA"
        android:text="按钮B" />
    <Button
        android:id="@+id/btD"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@id/btA"
        android:text="按钮D" />
    <Button
        android:id="@+id/btC"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/btA"
        android:layout_toLeftOf="@+id/btD"
        android:text="按钮C" />
</RelativeLayout> 
 
 TestActivity:
package com.example.androidtest;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class TestActivity extends Activity 
    private Button btA;
    private Button btB;
    private Button btC;
    private Button btD;
    private boolean isVisible = true;
    @Override
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
        btA = (Button) findViewById(R.id.btA);
        btB = (Button) findViewById(R.id.btB);
        btC = (Button) findViewById(R.id.btC);
        btD = (Button) findViewById(R.id.btD);
        btB.setVisibility(View.INVISIBLE);
        btC.setVisibility(View.INVISIBLE);
        btD.setVisibility(View.INVISIBLE);
        btA.setOnClickListener(new OnClickListener() 
            @Override
            public void onClick(View v) 
                if (isVisible) 
                    btB.setVisibility(View.VISIBLE);
                    btC.setVisibility(View.VISIBLE);
                    btD.setVisibility(View.VISIBLE);
                    isVisible = false;
                 else 
                    btB.setVisibility(View.INVISIBLE);
                    btC.setVisibility(View.INVISIBLE);
                    btD.setVisibility(View.INVISIBLE);
                    isVisible = true;
                
            
        );
    

追问

厉害,真的啊
我还想问一下,怎么能让按钮B、C、D与A的距离不变,就是B、C、D随着A的移动而移动?
十分感谢,我财富值总共就8个了,有的话肯定多给你一些

追答

我用的是相对位置的layout啊
A放中间,
B始终放A左边(android:layout_toLeftOf="@id/btA")
C始终放A上边(android:layout_above="@+id/btA")
D始终放A右边(android:layout_toRightOf="@id/btA")就可以了啊

追问

如果要在它们之间要一定的距离,那应该怎么做??

追答BCD三个按钮设个间隔距离就好了,前面就不写了
    <Button
        android:id="@+id/btC"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/btA"
        android:layout_marginBottom="10dp"
        android:layout_toLeftOf="@+id/btD"
        android:text="按钮C" />
    <Button
        android:id="@+id/btB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginRight="10dp"
        android:layout_toLeftOf="@+id/btA"
        android:text="按钮B" />
    <Button
        android:id="@+id/btD"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/btA"
        android:text="按钮D" />

追问

十分感谢
不过当按钮A移动的时候其他按钮还是在原来的位置,无法始终与A保持10dp的距离
我的想法是B、C、D始终与A的距离不变,A移到哪儿,它们也跟着移到哪儿

可以只写关键的代码,我应该能看的懂

追答

你说的A移动是说改变A的位置吗?
理论上来说用相对layout
只要设定了A的位置,然后保持BCD与A是相对左上右的关系就行了啊

参考技术A 先隐藏 在显示 隐藏的时候分两种 一种是 不占空间的隐藏 一种是占空间的隐藏追问

能否详细讲解下什么是占空间的隐藏,什么是不占空间的隐藏,这两种分别在什么情况下用?
十分感谢

追答

不占用空间的以藏 就是 隐藏后 那个按钮的位置 就空出来了 占位置隐藏就是只是看不到了 但是 按钮还在那个位置

参考技术B 我觉得重新构造个新的activity,上面有3个按钮的A,B,C
原来那个activity上有一个按钮M,
然后点击M
执行的动作时intent 转到新activity
楼主觉得这样行么?
======================================================================
我也觉得 第一个回答 的 行,赞一个追问

点击后,原来的按钮M也要存在,而且在原来的activity上还有其他的组件,你这样解决的话似乎有点.....
不过还是谢谢你的回答

参考技术C 三个按钮形成一个三角形 呵呵..

以上是关于android开发中,点击一个按钮,周围出现三个按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何消除点击按钮时周围出现的白线?

删除点击按钮周围的边框[重复]

【Android开发】如何 使得 android长按按钮=多次按下按钮

8-4 Flutter Android混合开发实战-调试与发布

android开发中怎么控件按钮不让用户频繁的点击

请教高手android开发中progressdialog按确定按钮时不关闭的一个问题?