Quiero hacer las esquinas de una ronda button
. ¿Hay alguna manera fácil de lograr esto en Android?¿Cómo hacer girar las esquinas de un botón?
Respuesta
Si quieres algo como esto
aquí está el código.
1.Create un archivo XML en la carpeta estirable como mybutton.xml y pegar el siguiente marcado:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" >
<shape android:shape="rectangle" >
<corners android:radius="3dip" />
<stroke android:width="1dip" android:color="#5e7974" />
<gradient android:angle="-90" android:startColor="#345953" android:endColor="#689a92" />
</shape>
</item>
<item android:state_focused="true">
<shape android:shape="rectangle" >
<corners android:radius="3dip" />
<stroke android:width="1dip" android:color="#5e7974" />
<solid android:color="#58857e"/>
</shape>
</item>
<item >
<shape android:shape="rectangle" >
<corners android:radius="3dip" />
<stroke android:width="1dip" android:color="#5e7974" />
<gradient android:angle="-90" android:startColor="#8dbab3" android:endColor="#58857e" />
</shape>
</item>
</selector>
2.Now utilizar este estirable para el fondo de su vista. Si la vista es botón y luego algo como esto:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textColor="#ffffff"
android:background="@drawable/mybutton"
android:text="Buttons" />
se colgó: Causado por: org.xmlpull.v1.XmlPullParserException: la línea del archivo XML binario n. ° 24:
dibujable podemos hacer esto programáticamente. – Killer
Dice que el selector de elementos debe declararse EDITAR: Perdón por el archivo que estaba dentro de la carpeta de valores en lugar del archivo dibujable. Cuando lo transferí, funcionó. –
si está utilizando vectores arrastrables, entonces simplemente necesita especificar un elemento < de esquinas > en su definición dibujable. He cubierto esto en un blog post.
Si está utilizando herramientas de mapa de bits/9 parches, tendrá que crear las esquinas con transparencia en la imagen de mapa de bits.
Crear un archivo XML en la carpeta estirable, como a continuación
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<!-- you can use any color you want I used here gray color-->
<solid android:color="#ABABAB"/>
<corners android:radius="10dp"/>
</shape>
Aplicar esto como fondo de botón que desee hacer esquinas redondeadas.
O puede usar el radio separada para cada esquina, como a continuación
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp"
Puede acortar las esquinas a android: radius = "10dp", que se aplicará a todos –
Esto es no es una solución completa, ya que no es compatible con los diversos estados del botón (presionado, enfocado, predeterminado). Para una mejor solución, consulte http://stackoverflow.com/questions/9334618/rounded-button-android – JosephL
@BenSimpson, verá que hay una diferencia en la forma cuando coloca solo esa línea en lugar de definir cada una de las radios de esquina individualmente. –
crear shape.xml en la carpeta dibujable
como shape.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke android:width="2dp"
android:color="#FFFFFF"/>
<gradient
android:angle="225"
android:startColor="#DD2ECCFA"
android:endColor="#DD000000"/>
<corners
android:bottomLeftRadius="7dp"
android:bottomRightRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp" />
</shape>
y en myactivity.xml
que pueda use
<Button
android:id="@+id/btn_Shap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Shape"
android:background="@drawable/shape"/>
La forma simple que descubrí fue hacer un nuevo archivo xml en la carpeta dibujable y luego señalar los botones de fondo a ese archivo xml. Aquí está el código que utilicé:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#ff8100"/>
<corners android:radius="5dp"/>
</shape>
Para restaurar el efecto de ondulación Material-tema en el fondo dibujable personalizado, agregue 'android: foreground ="? attr/seleccionableItemBackground "' en la Vista de botones. Consulte https://stackoverflow.com/questions/38327188/android-setting-background-color-of-button-loses-ripple-effect –
Crear archivo en la carpeta rounded_btn.xml Disponibles ...
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/#FFFFFF"/>
<stroke android:width="1dp"
android:color="@color/#000000"
/>
<padding android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp"
/>
<corners android:bottomRightRadius="5dip" android:bottomLeftRadius="5dip"
android:topLeftRadius="5dip" android:topRightRadius="5dip"/>
</shape>
y utilizar this.xml archivo como un botón de fondo botón de estilo
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/rounded_btn"
android:text="Test" />
<Button
android:id="@+id/buttonVisaProgress"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp"
android:background="@drawable/shape"
android:onClick="visaProgress"
android:drawableTop="@drawable/ic_1468863158_double_loop"
android:padding="10dp"
android:text="Visa Progress"
android:textColor="@android:color/white" />
forma.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="14dp" />
<gradient
android:angle="45"
android:centerColor="#1FA8D1"
android:centerX="35%"
android:endColor="#060d96"
android:startColor="#0e7e1d"
android:type="linear" />
<padding
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp" />
<size
android:width="270dp"
android:height="60dp" />
<stroke
android:width="3dp"
android:color="#000000" />
Crear archivo myButton.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorButton"/>
<corners android:radius="10dp"/>
</shape>
botón Añadir a
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background">@drawable/myButton
/>
Este enlace tiene toda la información que necesita. Here
Shape.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#EAEAEA"/>
<corners android:bottomLeftRadius="8dip"
android:topRightRadius="8dip"
android:topLeftRadius="1dip"
android:bottomRightRadius="1dip"
/>
</shape>
y main.xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello Android from NetBeans"/>
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nishant Nair"
android:padding="5dip"
android:layout_gravity="center"
android:background="@drawable/button_shape"
/>
</LinearLayout>
Esto debería darle el resultado deseado.
Lo mejor de la suerte
Es tan simple. Crea un archivo XML como debajo de uno. Establecerlo como fondo para el botón. Cambie el atributo de radio a su deseo, si necesita más curva para el botón.
button_background.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/primary" />
<corners android:radius="5dp" />
</shape>
Conjunto de fondo a su botón:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_background"/>
- 1. Cómo redondear las esquinas de un botón
- 2. Cómo hacer un div con esquinas redondeadas
- 3. Matplotlib: hacer girar un parche
- 4. Cómo estirar un UIImage conservando las esquinas
- 5. Encontrar las esquinas de un rectángulo deformado
- 6. ¿Cómo doblo las esquinas de un borde de tabla iTextSharp?
- 7. ¿Cómo establecer el color de selección de botón junto con las esquinas redondeadas en Android?
- 8. Crear botón con esquinas redondeadas en Android
- 9. ¿Cómo puedo hacer una forma de esquinas redondeadas en WPF?
- 10. ¿Cómo puedo hacer esquinas redondeadas div con fondo transparente?
- 11. Girar un vector (matriz)
- 12. esquinas redondeadas en las imágenes
- 13. ¿Cómo puedo hacer que las 4 esquinas de mi div tengan asas redimensionables con jQuery?
- 14. ¿Cómo hacer las esquinas de rectángulo redondeadas superiores (o inferiores) en Silverlight?
- 15. ¿Solo dos esquinas redondeadas?
- 16. Alrededor de las esquinas de una imagen
- 17. Esquinas de clips CSS?
- 18. Girar un Swing JLabel
- 19. Esquinas redondeadas en un fieldset
- 20. ¿Cómo hacer un TextBox con un botón dentro de WPF?
- 21. ¿Cómo hacer un botón estático debajo de un ScrollView?
- 22. ¿Girar imágenes alrededor de un círculo?
- 23. ¿Cómo hacer resaltar el botón?
- 24. Botón redondo en Android ... evite las prensas "afuera" del botón?
- 25. Girar el rectángulo alrededor de un punto
- 26. Girar un dibujo en Android
- 27. ¿Cómo puedo hacer que un TextView parezca un botón?
- 28. Girar una UITableViewCell personalizada
- 29. ¿Alguna manera de hacer bonitas esquinas redondas antialias para las imágenes en python?
- 30. WPF: Cómo hacer que un fondo de botón sea transparente
Sunil: Tipo, es una pregunta honesta. También busqué en Google mucho para llegar a una respuesta sensata, y no es sencillo. Esperaba que Android SDK proporcionara esta propiedad en el objeto Button en sí ... –
mira esto: http://nishantvnair.wordpress.com/2010/11/09/customize-button-in-android/ – Lavanya
Marca esto fuera http://www.gadgetsaint.com/tips/rounded-corners-views-layouts-android/#.WPz2QVN97BI – ASP