web-dev-qa-db-fra.com

Répéter l'image avec ImageView dans RelativeLayout

Je veux répéter l'image avec ImageView avec in RelativeLayout. Est-il possible d'utiliser le XML Bitmap et d'utiliser le tilemode "repeat" avec RelativeLayout, parce que ce que j'ai vu sur Internet, ils traitent tous de LinearLayout.

Toute aide ou conseil sera chaleureusement accueilli.

27
Usman Kurd

Créez un fichier XML nommé background dans le dossier Drawable

background.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:src="@drawable/imagename"
Android:tileMode="repeat" />

Dans votre mise en page relative, ajoutez le XML ci-dessus comme arrière-plan

<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@drawable/background" />
75
Anirudh

Oui bien sûr, vous pouvez l'utiliser avec une mise en page relative. Utilisez-le comme arrière-plan de votre RelativeLayout. Je l'ai également utilisé dans mon projet.

  <RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:orientation="horizontal" 
        Android:background="@drawable/top_header_bg_repeat"
        Android:gravity="center">

top_header_bg_repeat.xml (in drawable folder)
----------------------------------------------

<bitmap
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:src="@drawable/top_header"
    Android:tileMode="repeat"
    Android:dither="true"/>

Set Bitmap in ImageView
----------------------   

<ImageView 
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:src="@drawable/top_header_bg_repeat"
        Android:scaleType="fitXY"/> 

 <ImageView 
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:background="@drawable/top_header_bg_repeat"/> 
10
Chirag

Oui c'est possible. Définissez votre image répétée comme Drawable (bitmap) avec Android:tileMode="repeat" en XML et utilisez-le comme arrière-plan de votre RelativeLayout.

3
waqaslam

Dans toutes les demandes, il existe un petit problème si votre image sera grande et plus petite quelle que soit la taille de votre mise en page, l'image ne sera pas redimensionnée, répétez uniquement par X. Pour la répétition par Y, vous ne pouvez le faire que par programme.

Je résous mon problème comme ça (définir le remplissage par gravité)

drawable bg pour l'image

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:src="@drawable/table_cells_bg_img"
        Android:tileMode="repeat" Android:gravity="fill" />

et sur mise en page

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="@dimen/table_cell_height">

    <ImageView
        Android:id="@+id/imageView1"
        Android:layout_width="fill_parent"
        Android:layout_height="@dimen/table_cell_height"
        Android:scaleType="fitXY"
        Android:src="@drawable/table_cells_bg"/>
<TextView
        Android:id="@+id/txtActivityTime"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentTop="true"
        Android:layout_toRightOf="@+id/avatarImage"
        Android:text="TextView"
        Android:textColor="@color/white"
        Android:textSize="@dimen/font_size_middle" />
</RelativeLayout>

Et table_cells_bg_img c'est une image avec width = 1px et height = 1px

et etc. de mise en page, donc maintenant votre image est comme un arrière-plan et elle sera redimensionnée pour n'importe quelle taille de mise en page parent

Essayez, aidez peut-être. Pour être effacé dans mon cas, j'ai besoin d'une image d'arrière-plan en mosaïque à la taille réelle de la nappe répétée par coordonnée X (comme je peux le faire sur iOS). Alors je le résous comme je le décris.

2
Dmitry Nelepov