Bagaimana cara membuat tombol bulat?

141

Saya mencoba membuat tombol bulat, tetapi saya tidak tahu bagaimana saya bisa melakukannya. Saya bisa membuat tombol dengan sudut bulat, tapi bagaimana saya bisa bulat. Ini tidak sama. Tolong, beri tahu saya, apakah mungkin di Android? Terima kasih.

pengguna1166635
sumber
1
punya penjelasan yang baik di sini stackoverflow.com/questions/9884202/custom-circle-button
Milon

Jawaban:

265

Buat file xml bernama roundedbutton.xmldalam folder yang dapat digambar

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle">
    <solid android:color="#eeffffff" />
    <corners android:bottomRightRadius="8dp"
        android:bottomLeftRadius="8dp"  
        android:topRightRadius="8dp"
        android:topLeftRadius="8dp"/>
</shape>

Akhirnya menetapkan bahwa sebagai latar belakang untuk Anda Buttonsebagaiandroid:background = "@drawable/roundedbutton"

Jika Anda ingin membuatnya benar-benar bulat, ubah radius dan puas dengan sesuatu yang ok untuk Anda.

Arif Nadeem
sumber
Apakah Anda memerlukan akhiran .xml? Saya telah melihat contoh tanpa
Neil
@Neil Anda tidak perlu menambahkan akhiran xml, saya melakukannya untuk tujuan demonstrasi dan pemahaman yang jelas tentang konsep sehingga pembaca tidak mengambil contoh yang salah, gerhana bantuan otomatis akan membantu Anda menemukan jika .xml diperlukan atau tidak, saya memiliki kebiasaan menggunakan ruang ctrl + pada mesin windows saya untuk menyelesaikan perintah xml secara otomatis.
Arif Nadeem
2
Anda tidak perlu simbol '@' sebelum kata dapat ditarik?
shim
Apakah solusi ini memiliki hasil yang berbeda dari hanya menggunakan gambar bulat sebagai latar belakang?
Siavash
6
Juga, mengapa tidak menggunakan android: shape = "oval"
Siavash
39

Jika menggunakan Android Studio, Anda dapat menggunakan:

<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring">
        <solid android:color="#FFFFFF"/>

    </shape>

ini bekerja dengan baik untuk saya, semoga ini membantu seseorang.

Shaun Jones
sumber
2
yang seharusnya menjadi jawaban yang diterima, menggunakan nilai sudut tidak melampaui sudut bulat, dan pertanyaan ini adalah tentang lingkaran. Terima kasih Shaun untuk jawaban ini
Don
12
Menggunakan ringtidak menunjukkan apa pun. Lebih baik digunakan oval.
CopsOnRoad
31
  1. Buat file drawable / button_states.xml yang berisi:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="false"> 
            <shape android:shape="rectangle">
            <corners android:radius="1000dp" />
            <solid android:color="#41ba7a" />
            <stroke
                android:width="2dip"
                android:color="#03ae3c" />
            <padding
                android:bottom="4dp"
                android:left="4dp"
                android:right="4dp"
                android:top="4dp" />
            </shape>
        </item>
        <item android:state_pressed="true"> 
            <shape android:shape="rectangle">
            <corners android:radius="1000dp" />
            <solid android:color="#3AA76D" />
            <stroke
                android:width="2dip"
                android:color="#03ae3c" />
            <padding
                android:bottom="4dp"
                android:left="4dp"
                android:right="4dp"
                android:top="4dp" />
            </shape>
        </item>
    </selector>
  2. Gunakan dalam tag tombol di file tata letak apa pun

    <Button
        android:layout_width="220dp"
        android:layout_height="220dp"
        android:background="@drawable/button_states"
        android:text="@string/btn_scan_qr"
        android:id="@+id/btn_scan_qr"
        android:textSize="15dp"
    />
Mohit
sumber
ini bekerja dengan sempurna, terima kasih. dapatkah Anda membantu saya menggambar persegi panjang dari pusat ke luar lingkaran seperti 'Q'
CLIFFORD PY
Bekerja dengan baik, tetapi mengapa kami menempatkan radius ke 1000dp? bisakah kamu menjelaskan?
Jamshaid Kamran
@JamshaidKamran 1000dp adalah ukuran acak yang cukup besar untuk membuat tombol bulat.
rraallvv
Apakah ada sumber daya dimensi Android yang bisa kita gunakan, bukannya 1000dp?
rraallvv
14

Circlebutton android Markushi:

(Perpustakaan ini sudah usang dan tidak ada pengembangan baru yang terjadi. Pertimbangkan menggunakan FAB sebagai gantinya.)

masukkan deskripsi gambar di sini

LOG_TAG
sumber
4
peringatan: TERGANGGU!
dialex
6

<corners android:bottomRightRadius="180dip"
    android:bottomLeftRadius="180dip"
    android:topRightRadius="180dip"
    android:topLeftRadius="180dip"/>

<solid android:color="#6E6E6E"/> <!-- this one is ths color of the Rounded Button -->

dan tambahkan ini ke kode tombol

    android:layout_width="50dp"
    android:layout_height="50dp"
pengguna4512768
sumber
5

Bentuknya seperti oval. Ini membuat tombol oval

<item>
    <shape android:shape="oval" >
        <stroke
            android:height="1.0dip"
            android:width="1.0dip"
            android:color="#ffee82ee" />

        <solid android:color="#ffee82ee" />

        <corners
            android:bottomLeftRadius="12.0dip"
            android:bottomRightRadius="12.0dip"
            android:radius="12.0dip"
            android:topLeftRadius="12.0dip"
            android:topRightRadius="12.0dip" />
    </shape>
</item>

Rohit Goyal
sumber
5
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
    android:color="#ffffff"
    />
</shape>

Atur itu pada sumber daya yang dapat digambar XML Anda, dan gunakan sederhana dan tombol gambar dengan gambar bulat, menggunakan drawable Anda sebagai latar belakang.

Giovanny Piñeros
sumber
3

Tombol bulat di Android

Anda dapat membuat ImageButtondengan latar belakang gambar lingkaran.

chavaone
sumber
3

gunakan ImageButton bukan Button ....

dan membuat gambar Bulat dengan latar belakang transparan

MAC
sumber
3

Jika Anda menginginkan tombol melingkar yang terlihat FAB dan Anda menggunakan pustaka Komponen Bahan resmi, Anda dapat dengan mudah melakukannya seperti ini:

<com.google.android.material.button.MaterialButton
    style="@style/Widget.MaterialComponents.ExtendedFloatingActionButton"
    app:cornerRadius="28dp"
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:text="1" />

Hasil:

masukkan deskripsi gambar di sini

Jika Anda mengubah ukuran tombol, berhati-hatilah untuk menggunakan setengah dari ukuran tombol app:cornerRadius.

Roberto Leinardi
sumber
2

Untuk tombol bulat, buat bentuk:

<?xml version="1.0" encoding="utf-8"?>

<stroke
    android:width="8dp"
    android:color="#FFFFFF" />

<solid android:color="#ffee82ee" />


<corners
    android:bottomLeftRadius="45dp"
    android:bottomRightRadius="45dp"
    android:topLeftRadius="45dp"
    android:topRightRadius="45dp" />

gunakan itu sebagai latar belakang tautan tombol Anda

Naqash
sumber
0

Anda dapat menggunakan FloatingActionButton google

XMl:

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@android:drawable/ic_dialog_email" />

Jawa:

  @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    FloatingActionButton bold = (FloatingActionButton) findViewById(R.id.fab);
    bold.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
        // Do Stuff
        }
    });
}

Gradle:

    compile 'com.android.support:design:23.4.0'
kalebora
sumber
0
  1. Gunakan Tombol Gambar dan jadikan latar belakang sebagai gambar yang Anda inginkan.
  2. Buat gambar dari tautan studio aset android -

" https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html#foreground.type=image&foreground.space.trim=0&foreground.space.pad=0.25&foreColor=rgba(94%2C%20126%2C%20142%% 2C% 200) & backColor = rgb (96% 2C% 20125% 2C% 20139) & memotong = 1 & backgroundShape = lingkaran & efek = tidak ada & nama = ic_home "

dan unduh, extraxt itu, di dalamnya mencari folder mipmap-hdpi.

  1. salin gambar dari folder mipmap-hdpi dan tempel di folder drwable proyek android Anda.

  2. Sekarang atur latar belakang sebagai gambar itu.

Naren
sumber