0

Aşağıda gösterildiği gibi, basit bir dairesel ImageButton oluşturmak istiyorum, hangi 16 veya daha yüksek Android API sürümlerinde desteklenir. çekilebilir klasörün içindeDairesel Düğme android API-16 üzerinde çalışmıyor (Jelly Bean)

<ImageButton android:layout_width="70dp" 
android:layout_height="70dp" 
android:id="@+id/myButton" 
android:background="@drawable/circular_button" /> 

Benim circular_button.xml şuna benzer:

enter image description here

:

<?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> 

şeyler android Lollipop (API 21) ve bu ımagebutton görünüyor nasıl sorunsuz bir şekilde çalışabildiği

Ancak eski Android sürümlerinde (API 16), şunun gibi görünüyor:

enter image description here

Herhangi bir fikir bunu çözüldü almak için? Teşekkürler!

+0

ImageView yerine kullanmayı denediniz mi? – Sheychan

+0

sizin görseliniz yüklenmiyor. tekrar ekleyin –

+0

Denedim ama bu da işe yaramadı. Ayrıca, içinde hem çizilebilir simge hem de metin bulunan dairesel bir düğmeye ihtiyacım var. @Sheychan – kds23

cevap

0

Düzenle Hata Durumum: Lütfen kodun altını çizin, kendi kodumla kullandım ve yuvarlak görüntüler için mükemmel çalışıyor.

public class ImageHelper { 
    public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels) { 
     Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap 
       .getHeight(), Config.ARGB_8888); 
     Canvas canvas = new Canvas(output); 

     final int color = 0xff424242; 
     final Paint paint = new Paint(); 
     final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); 
     final RectF rectF = new RectF(rect); 
     final float roundPx = pixels; 

     paint.setAntiAlias(true); 
     canvas.drawARGB(0, 0, 0, 0); 
     paint.setColor(color); 
     canvas.drawRoundRect(rectF, roundPx, roundPx, paint); 

     paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); 
     canvas.drawBitmap(bitmap, rect, rect, paint); 

     return output; 
    } 
} 
+1

Bu sorunun neden giderileceğinin açıklaması nedir? –

+0

Bu sorun çözülmedi! @Android Geek – kds23

+0

@ user3500989 bu kodu kullanırken sorunla karşılaşırsanız, sorabilirsiniz. –

İlgili konular