J'ai du mal à faire apparaître ma vue d'image sur la moitié de l'écran. Quelqu'un peut-il m'aider? voici mon fichier xml. Il devrait occuper la moitié de la taille de l'écran et la disposition linéaire avec la vue de texte devrait être en bas de la vue d'image.
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@drawable/fond" >
<RelativeLayout
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:layout_alignParentLeft="true"
Android:layout_below="@+id/relativeLayout1" >
<RelativeLayout
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:layout_alignParentLeft="true" >
<WebView
Android:id="@+id/webcontent"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:layout_marginTop="151dp" />
</RelativeLayout>
<ImageView
Android:id="@+id/image_actualitedetails"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:layout_alignParentTop="true"
Android:layout_centerHorizontal="true"
Android:src="@drawable/six_yamaha" />
<LinearLayout
Android:id="@+id/linearvideo"
Android:layout_width="fill_parent"
Android:layout_height="65dp"
Android:layout_alignBottom="@+id/image_actualitedetails"
Android:layout_alignParentLeft="true"
Android:background="#88FFFFFF"
Android:gravity="center"
Android:paddingLeft="@dimen/fourdp"
Android:paddingRight="@dimen/fourdp" >
<TextView
Android:id="@+id/text_actualites"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="TextView"
Android:textColor="@color/tabDark"
Android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
<RelativeLayout
Android:id="@+id/relativeLayout1"
Android:layout_width="fill_parent"
Android:layout_height="75dp"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:background="@drawable/header" >
<Button
Android:id="@+id/boutton_retour"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentLeft="true"
Android:layout_centerVertical="true"
Android:layout_marginLeft="14dp"
Android:background="@drawable/back" />
</RelativeLayout>
Utilisez LinearyLayout pour encapsuler votre ImageView et une autre vue invisible, et définissez layout_weight à la fois à 0,5, puis ImageView devrait être la moitié de la taille.
Voici un exemple pour vous montrer comment définir l'image à la moitié de la taille de l'écran
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<RelativeLayout
Android:layout_width="match_parent"
Android:layout_height="0dp"
Android:layout_weight="0.5"
Android:background="#ff0000"
>
<ImageView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:src="@drawable/your_image"
Android:adjustViewBounds="true"
/>
</RelativeLayout>
<View
Android:layout_width="match_parent"
Android:layout_height="0dp"
Android:layout_weight="0.5"
Android:background="#00ff00"
/>
</LinearLayout>
Et voici le résultat
Si vous souhaitez placer votre image au centre de l'écran, vous pouvez utiliser la même idée et définir le poids approprié pour atteindre votre objectif. Bonne chance!
Juste si quelqu'un veut une version paysage, c'est presque la même chose :)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="horizontal"
Android:baselineAligned="true"
Android:layout_width="match_parent"
Android:layout_height="match_parent" >
<RelativeLayout
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:layout_weight="0.5"
Android:background="#ff0000" >
<ImageView
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:src="@drawable/adele" />
</RelativeLayout>
<RelativeLayout
Android:layout_width="0dp"
Android:layout_height="match_parent"
Android:layout_weight="0.5"
Android:background="#00ff00" />
</LinearLayout>
Vous devez d'abord obtenir les dimensions d'affichage lors de l'exécution
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
windowWidth = size.x;
windowHeight = size.y;
Ensuite, vous pouvez continuer et définir vos paramètres de hauteur et de largeur imageView à la moitié de ces valeurs
int orgWidth = yourImageView.getDrawable().getIntrinsicWidth();
int orgHeight = yourImageView.getDrawable().getIntrinsicHeight();
//Use RelativeLayout.LayoutParams if your parent is a RelativeLayout
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
windowHeight / 2, windowWidth / 2);
yourImageView.setLayoutParams(params);
yourImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
Vous devez placer votre image dans un LinearLayout avec alignement horizontal, afin que vous puissiez utiliser
Android:weight = 0.5// this attribute for the image view will force the image to fill half of the screen, counting of course with the linear layout as the top parent layout(filling the hole window)