J'essaie de définir dans mon élément racine LinearLayout (qui est défini sur fill_parent dans les deux dimensions) une image d'arrière-plan toujours située dans le coin inférieur gauche de l'écran, quelle que soit l'orientation du périphérique. Ce serait excellent s’il existait un moyen de définir la position de l’image d’arrière-plan, comme celle que vous pouvez utiliser avec css, en utilisant "background-position: left bottom;" mais je ne vois pas comment y parvenir dans Android. Y a-t-il un moyen de faire cela?
Merci pour l'aide.
Vous devrez créer une image bitmap personnalisée pouvant être dessinée avec votre image dans un fichier XML (par exemple, "res/drawables/my_drawable.xml"
<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:src="@drawable/my_png_file"
Android:gravity="bottom|left" />
Et ensuite, définissez ce xml dessinable comme arrière-plan de votre vue ("@ drawables/my_drawable") . Le format XML dessinable est très mal documenté sur le site Android, ce n'est donc pas un problème facile à résoudre. par toi-même.
Si vous trouvez un avantage à le faire par programme: l’image correspond à la présentation au lieu d’être plus grande que celle-ci. Aucune idée pourquoi.
Le code:
Bitmap bmp = BitmapFactory.decodeResource(getResources(),
R.drawable.image);
BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp);
bitmapDrawable.setGravity(Gravity.BOTTOM|Gravity.RIGHT);
LinearLayout layout = (LinearLayout) findViewById(R.id.background_root);
layout.setBackgroundDrawable(bitmapDrawable);
Ma réponse est juste une mise à jour des réponses ci-dessus Si vous utilisez XML pour l’arrière-plan, un problème de rapport de format peut apparaître
alors utilisez ce code
Bitmap bmp = BitmapFactory.decodeResource(getResources(),
R.drawable.image);
BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp);
bitmapDrawable.setGravity(Gravity.BOTTOM| Gravity.RIGHT| Gravity.FILL_HORIZONTAL);
LinearLayout layout = (LinearLayout) findViewById(R.id.background_root);
layout.setBackgroundDrawable(bitmapDrawable);
Gravity.Fill_HORIZONTAL s'adaptera à la largeur de la mise en page sur laquelle vous appliquez l’arrière-plan. Vous pouvez également le mentionner dans un fichier XML, mais comme je l’ai dit, cela se produira. Problème de Image Ratio
Enveloppez votre LinearLayout dans un RelativeLayout et ajoutez-lui un ImageView. Avec Android: layout_alignParentBottom et Android: layout_alignParentLeft, vous pouvez placer votre image en bas à gauche.
<RelativeLayout
Android:id="@+id/relativeLayout"
Android:layout_width="match_parent"
Android:layout_height="match_parent" >
<ImageView
Android:id="@+id/imageView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_alignParentLeft="true"
Android:src="@drawable/my_image" />
<LinearLayout
Android:id="@+id/linearLayout"
... >
Assurez-vous que ImageView est le premier élément de RelativeLayout pour dessiner l'image en arrière-plan.