studio - Esquinas redondeadas con botones de imagen de android
no se ven los botones en android studio (5)
Crear image_rounded_corner.xml
dentro de / res / drawable
<?xml version="1.0" encoding="UTF-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#000000" />
<stroke android:width="3dp" android:color="#776da8" />
<corners android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp" android:topLeftRadius="5dp" android:topRightRadius="5dp" />
<padding android:left="2dp" android:top="2dp" android:right="2dp" android:bottom="2dp" />
</shape>
Llame al archivo image_rounded_corner.xml con android:background
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/myimage"
android:src="@drawable/icon"
android:background="@drawable/image_rounded_corner" />
o use un archivo Draw 9-patch como se sugiere "Artoo Detoo".
Estoy tratando de redondear las esquinas en un botón de imagen de Android, el código se ve así;
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton"
android:layout_marginTop="57dp"
android:src="@drawable/friends"
android:padding="1dp"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/imageButton2"
android:layout_marginRight="62dp" />
</RelativeLayout>
</LinearLayout>
Básicamente nuestra salida es un ImageButton pero tiene esquinas cuadradas, estamos tratando de redondear las esquinas.
Gracias
Podría usar un selector hecho de formas dibujables como fondo, por ejemplo:
rounded_bg.xml (que se creará en la carpeta res / drawable-nodpi)
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#ffffff" />
<corners
android:bottomLeftRadius="4dp"
android:bottomRightRadius="4dp"
android:topLeftRadius="4dp"
android:topRightRadius="4dp" />
</shape>
Cree otro, cambiando el color al que se hace referencia en solid android:color="#ffffff"
, por ejemplo a solid android:color="#ff0000"
y nombre ese archivo rounded_bg_selected.xml
Cree el selector (también en res / drawable-nodpi), asígnele el nombre selectable_button_bg.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/rounded_bg_selected" />
<item android:state_focused="false"
android:drawable="@drawable/rounded_bg" />
</selector>
Luego haz referencia en tu diseño:
<ImageButton
android:background="@drawable/selectable_button_bg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton"
android:layout_marginTop="57dp"
android:src="@drawable/friends"
android:padding="1dp"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/imageButton2"
android:layout_marginRight="62dp" />
Usa Shape en Android para hacer las esquinas más redondas.
crear el archivo xml llamado como roundcorner.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#33DDFF" />
<corners android:radius="4dp" />
</shape>
En tu ImageButton agrega este atributo android:background="@drawable/roundcorner"
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton"
android:layout_marginTop="57dp"
android:src="@drawable/friends"
android:background="@drawable/roundcorner"
android:padding="1dp"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/imageButton2"
android:layout_marginRight="62dp" />
Usa esto: pon esto en la carpeta res / drawable
my_gradient.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="100dp" />
<stroke
android:width="5dp"
android:color="#090" />
</shape>
En tu ImageButton solo pon:
android:background="@drawable/my_gradient"
public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.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(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
este código te ayudará. (De un artículo chino: http://www.cnblogs.com/liuweiming/archive/2012/04/23/2466074.html )