Özel düğme oluşturmak istiyorum ve bunun daire olması gerekiyor. Nasıl bir daire düğmesi oluşturabilirim? Bunun draw9patch ile mümkün olduğunu düşünmüyorum.
Ayrıca nasıl özel düğme yapmak bilmiyorum!
Hiç önerin var mı?
Özel düğme oluşturmak istiyorum ve bunun daire olması gerekiyor. Nasıl bir daire düğmesi oluşturabilirim? Bunun draw9patch ile mümkün olduğunu düşünmüyorum.
Ayrıca nasıl özel düğme yapmak bilmiyorum!
Hiç önerin var mı?
Yanıtlar:
Bunun gibi xml çizilebilir kullanın:
Aşağıdaki içerikleri klasöre olduğu round_button.xml
gibi drawable
kaydedin
<?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="oval">
<solid android:color="#fa09ad"/>
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="oval">
<solid android:color="#c20586"/>
</shape>
</item>
</selector>
Android Material Effect: Her ne kadar FloatingActionButton
daha iyi bir seçenek olsa da, xml seçiciyi kullanarak yapmak istiyorsanız, drawable-v21
içinde bir klasör oluşturun res
ve başka bir round_button.xml
xml ile buraya kaydedin
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#c20586">
<item>
<shape android:shape="oval">
<solid android:color="#fa09ad"/>
</shape>
</item>
</ripple>
Ve Button
böyle xml'de arka plan olarak ayarlayın :
<Button
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:text="hello"
android:textColor="#fff" />
Önemli:
Markushi inanılmaz efektlerle bir daire düğmesi widget'ı yazdı. Click burada !
Özel android düğmesi için AngryTool
Bu araç sitesi ile her türlü özel android düğmesini yapabilirsiniz ... ben bu araç ile yuvarlak köşe ile daire ve kare düğme yapmak .. Ziyaret edin size yardımcı olacaktır
Resmi Malzeme Bileşenleri kütüphanesi ile MaterialButton
bir Widget.MaterialComponents.Button.Icon
stil uygulayabilirsiniz .
Gibi bir şey:
<com.google.android.material.button.MaterialButton
android:layout_width="48dp"
android:layout_height="48dp"
style="@style/Widget.MaterialComponents.Button.Icon"
app:icon="@drawable/ic_add"
app:iconSize="24dp"
app:iconPadding="0dp"
android:insetLeft="0dp"
android:insetTop="0dp"
android:insetRight="0dp"
android:insetBottom="0dp"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.MyApp.Button.Rounded"
/>
Şu anda app:iconPadding="0dp"
, android:insetLeft
, android:insetTop
, android:insetRight
, android:insetBottom
nitelikleri ilave dolgu alanı kaçınarak butonuna simgeyi ortalamak için gereklidir.
app:shapeAppearanceOverlay
Köşeleri yuvarlatılmış hale getirmek için özelliği kullanın . Bu durumda bir daireniz olacak.
<style name="ShapeAppearanceOverlay.MyApp.Button.Rounded" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">50%</item>
</style>
Nihai sonuç:
app:iconPadding="0dp"
Simgenin ortalandığından emin olmanın gerekliliğini vurgulamaya değer . Bunu bulana kadar bir sürü zaman merkezi denedim. Görünüşe göre bu uygulama: iconGravity'de bir "merkez" değeri eksik.
VectorDrawable ve ConstraintLayout'u kullanmak istiyorsanız
<FrameLayout
android:id="@+id/ok_button"
android:layout_width="100dp"
android:layout_height="100dp"
android:foreground="?attr/selectableItemBackgroundBorderless"
android:background="@drawable/circle_button">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/icon_of_button"
android:layout_width="32dp"
android:layout_height="32dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:srcCompat="@drawable/ic_thumbs_up"/>
<TextView
android:id="@+id/text_of_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/icon_of_button"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="5dp"
android:textColor="@android:color/white"
android:text="ok"
/>
</android.support.constraint.ConstraintLayout>
</FrameLayout>
daire arka planı: circle_button.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
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>
Bir FAB görünümlü düğme için bu stil MaterialButton
:
<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" />
Sonuç:
Boyutu değiştirirseniz düğme boyutunun yarısını olarak kullanmaya dikkat edin app:cornerRadius
.