studio sgoliver personalizar bar actionbar android layout

sgoliver - personalizar toolbar android studio



Android: cómo agregar una forma triangular en la esquina superior derecha del botón (2)

Me gustaría hacer este tipo de botón con un triángulo en la esquina superior derecha de un diseño:

Empecé este diseño sin este triángulo todavía:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center_vertical" android:paddingLeft="@dimen/keyline_1" android:paddingRight="@dimen/keyline_2"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/grey" android:text="DESCRIPTION"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_alignParentRight="true"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingRight="@dimen/keyline_4" android:textColor="@color/grey" android:text="info"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/grey" android:text="TITLE"/> </LinearLayout> </RelativeLayout>


Tienes que crear una shape y agregarla como background como este:

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <rotate android:fromDegrees="45" android:toDegrees="45" android:pivotX="-40%" android:pivotY="87%" > <shape android:shape="rectangle" > <stroke android:color="@color/transparent" android:width="10dp"/> <solid android:color="@color/your_color_here" /> </shape> </rotate> </item>

Agregue un TextView y coloque esta shape como background y cambie la gravity para end

Ejemplo:

android:background:"@drawable/YOUR_SHAPE"

Además, si no está familiarizado con las shapes intente esta respuesta


Utilice el código siguiente para crear una forma de triángulo y convertirlo en texto de fondo

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <rotate android:fromDegrees="-45" android:toDegrees="45" android:pivotX="0%" android:pivotY="1%" > <shape android:shape="rectangle" > <stroke android:width="10dp" android:color="#00000000" /> <solid android:color="#00ACED" /> </shape> </rotate> </item> </layer-list>

y use el código debajo para rotar la vista de texto

<TextView android:id="@+id/won_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:paddingTop="20dp" android:rotation="-45" android:text="@string/won" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="@android:color/white" android:textSize="34sp" />

más detalles referir ¿Cómo hacer una vista de texto personalizada en android?