XML : How do I use weightSum in Java in Android project?

I have made a simple UI in XML and now I try to achieve the same results in Java. But for some reason weight doesn't work for me. It's really important for me to create my UI in java because XML wouldn't work for me.

Here is my XMl Code:

  <?xml version="1.0" encoding="utf-8"?>  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="match_parent"      android:layout_height="match_parent">        <LinearLayout          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:orientation="vertical"          android:weightSum="4">            <LinearLayout              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:weightSum="2">                <ImageView              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:src="@drawable/french"                  android:adjustViewBounds="true"                  android:layout_weight="1"/>                <ImageView                  android:layout_width="wrap_content"                  android:layout_height="wrap_content"                  android:src="@drawable/french"                  android:adjustViewBounds="true"                  android:layout_weight="1"/>            </LinearLayout>            <LinearLayout              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:weightSum="2">                <ImageView                  android:layout_width="wrap_content"                  android:layout_height="wrap_content"                  android:src="@drawable/french"                  android:adjustViewBounds="true"                  android:layout_weight="1"/>                <ImageView                  android:layout_width="wrap_content"                  android:layout_height="wrap_content"                  android:src="@drawable/french"                  android:adjustViewBounds="true"                  android:layout_weight="1"/>            </LinearLayout>        </LinearLayout>    </RelativeLayout>    

XML code

and here my Java Code

  RelativeLayout rl = new RelativeLayout(c);          RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(                  RelativeLayout.LayoutParams.MATCH_PARENT,                  RelativeLayout.LayoutParams.MATCH_PARENT          );          rl.setLayoutParams(rlp);          rl.setBackgroundColor(Color.parseColor("#FFFFFF"));            LinearLayout container = new LinearLayout(c);          LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(                  LinearLayout.LayoutParams.WRAP_CONTENT,                  LinearLayout.LayoutParams.WRAP_CONTENT          );          container.setLayoutParams(llp);          container.setWeightSum(4f);          container.setOrientation(LinearLayout.VERTICAL);            LinearLayout upperRow = new LinearLayout(c);          llp = new LinearLayout.LayoutParams(                  LinearLayout.LayoutParams.WRAP_CONTENT,                  LinearLayout.LayoutParams.WRAP_CONTENT          );          upperRow.setLayoutParams(llp);          upperRow.setWeightSum(2f);            ImageView ivOne = new ImageView(c);          llp = new LinearLayout.LayoutParams(                  0,                  LinearLayout.LayoutParams.WRAP_CONTENT          );          llp.weight = 1f;          ivOne.setLayoutParams(llp);          try {              ivOne.setImageDrawable(Drawable.createFromStream(a.getAssets().open("Rest/french.jpg"),null));          } catch (IOException e) {              e.printStackTrace();          }            ImageView ivTwo = new ImageView(c);          llp = new LinearLayout.LayoutParams(                  0,                  LinearLayout.LayoutParams.WRAP_CONTENT          );          llp.weight = 1f;          ivTwo.setLayoutParams(llp);          try {              ivTwo.setImageDrawable(Drawable.createFromStream(a.getAssets().open("Rest/french.jpg"),null));          } catch (IOException e) {              e.printStackTrace();          }            upperRow.addView(ivOne);          upperRow.addView(ivTwo);            LinearLayout bottomRow = new LinearLayout(c);          llp = new LinearLayout.LayoutParams(                  LinearLayout.LayoutParams.WRAP_CONTENT,                  LinearLayout.LayoutParams.WRAP_CONTENT          );          bottomRow.setLayoutParams(llp);          bottomRow.setWeightSum(2f);            ImageView ivThree = new ImageView(c);          llp = new LinearLayout.LayoutParams(                  0,                  LinearLayout.LayoutParams.WRAP_CONTENT          );          llp.weight = 1f;          ivThree.setLayoutParams(llp);          try {              ivThree.setImageDrawable(Drawable.createFromStream(a.getAssets().open("Rest/french.jpg"),null));          } catch (IOException e) {              e.printStackTrace();          }                ImageView ivFour = new ImageView(c);          llp = new LinearLayout.LayoutParams(                  0,                  LinearLayout.LayoutParams.WRAP_CONTENT          );          llp.weight = 1f;          ivFour.setLayoutParams(llp);          try {              ivFour.setImageDrawable(Drawable.createFromStream(a.getAssets().open("Rest/french.jpg"),null));          } catch (IOException e) {              e.printStackTrace();          }            bottomRow.addView(ivThree);          bottomRow.addView(ivFour);            container.addView(upperRow);          container.addView(bottomRow);            rl.addView(container);          a.setContentView(rl);    

Java code

Can someone please explain to me what I have done wrong and how I create this kind of UI in Java.

No comments:

Post a Comment