una studio programacion poner para móviles libro insertar imagen fondo desarrollo curso codigo aplicaciones android android-xml

studio - manual de programacion android pdf



Agregar una imagen de fondo a la forma en XML Android (5)

¿Cómo se agrega una imagen de fondo a una forma? El código que probé a continuación pero sin éxito:

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="10dp"> //here is where i need to set the image <solid android:color="@drawable/button_image"/> <corners android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp" android:topLeftRadius="5dp" android:topRightRadius="5dp"/> </shape>


Usé lo siguiente para una imagen dibujable con un borde.

Primero crea un archivo .xml con este código en la carpeta dibujable:

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="oval"> <solid android:color="@color/orange"/> </shape> </item> <item android:top="2dp" android:bottom="2dp" android:left="2dp" android:right="2dp"> <shape android:shape="oval"> <solid android:color="@color/white"/> </shape> </item> <item android:drawable="@drawable/messages" //here messages is my image name, please give here your image name. android:bottom="15dp" android:left="15dp" android:right="15dp" android:top="15dp"/>

Segundo, haga un archivo .xml de vista en la carpeta de diseño y llame al archivo .xml de arriba de esta manera

<ImageView android:id="@+id/imageView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/merchant_circle" /> // here merchant_circle will be your first .xml file name


Aquí hay otra manera más fácil de obtener una forma personalizada para su imagen (Vista de imagen). Puede ser útil para alguien. Es solo un código de línea simple.

Primero necesitas agregar una dependencia:

dependencies { compile ''com.mafstech.libs:mafs-image-shape:1.0.4'' }

Y luego simplemente escribe una línea de código como esta:

Shaper.shape(context, R.drawable.your_original_image_which_will_be_displayed, R.drawable.shaped_image_your_original_image_will_get_this_images_shape, imageView, height, weight);


Esta es una forma circular con un icono dentro:

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ok_icon"/> <item> <shape android:shape="oval"> <solid android:color="@color/transparent"/> <stroke android:width="2dp" android:color="@color/button_grey"/> </shape> </item> </layer-list>


Usé lo siguiente para una imagen dibujable con un fondo circular.

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="oval"> <solid android:color="@color/colorAccent"/> </shape> </item> <item android:drawable="@drawable/ic_select" android:bottom="20dp" android:left="20dp" android:right="20dp" android:top="20dp"/> </layer-list>

Esto es lo que parece

Espero que ayude a alguien a salir.


Use la siguiente lista de layerlist :

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/image_name_here" /> <item> <shape android:shape="rectangle" android:padding="10dp"> <corners android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp" android:topLeftRadius="5dp" android:topRightRadius="5dp"/> </shape> </item> </layer-list>