AruLNadhaN
AruLNadhaN

Reputation: 2826

Layout is not Displayed as shown in the Graphical layout?

I have a Layout in my App Which has 5 Frame Layouts.I have Designed it in the Graphical Layout.It shows Perfect in the layout.But when I Run the App in the Device it is not showing the 2 green buttons with the Keyboard symbol.It Displays Only the Red Area in the App.

I Already Tested the Layout with another Activity.It works perfect.I think there is a Error in the below class.I can't find where it Happens ???

Nothing is shown in the LogCat...

So Help me in the Right Direction :)

Thanks for your Help ...

enter image description here

Layout Code

<?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="fill_parent" >

    <FrameLayout
        android:id="@+id/flKeyboardButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:background="@drawable/keyboard_off"
        android:maxHeight="100.0dip"
        android:maxWidth="60.0dip"
        android:minHeight="100.0dip"
        android:minWidth="60.0dip" />

    <FrameLayout
        android:id="@+id/flLeftButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@id/flKeyboardButton"
        android:background="@drawable/left_button_off"
        android:maxHeight="100.0dip"
        android:minHeight="100.0dip" />

    <FrameLayout
        android:id="@+id/flRightButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@id/flKeyboardButton"
        android:background="@drawable/left_button_off"
        android:maxHeight="100.0dip"
        android:minHeight="100.0dip" />

    <FrameLayout
        android:id="@+id/flAdvancedPanel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:background="@drawable/advanced"
        android:maxHeight="96dp" >
    </FrameLayout>

    <FrameLayout
        android:id="@+id/flTouchPad"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_above="@id/flKeyboardButton"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="@drawable/touchpad" />

    <EditText
        android:id="@+id/etAdvancedText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="-100dp"
        android:inputType="textMultiLine"
        android:maxHeight="32dp"
        android:visibility="visible" />

</RelativeLayout>

Here is the Java Code

     public class PadActivity extends Activity {

 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.fragment_mouse);
     Settings.init(this.getApplicationContext());
     // Hide the title bar
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
     if (this.lock == null) {
         Context appContext = this.getApplicationContext();
         // get wake lock
         PowerManager manager = (PowerManager) appContext.getSystemService(Context.POWER_SERVICE);
         this.lock = manager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, this.getString(R.string.app_name));
         // prepare sensor Listener
         this.mSensorListener = new SensorEventListener() {
             // @Override
             public void onSensorChanged(SensorEvent event) {
                 Sensor sensor = event.sensor;
                 int type = sensor.getType();
                 switch (type) {
                     case Sensor.TYPE_ACCELEROMETER:
                         onAccelerometer(event.values);
                         break;
                     case Sensor.TYPE_MAGNETIC_FIELD:
                         onMagnetic(event.values);
                         break;
                         // case Sensor.TYPE_ORIENTATION:
                         // break;
                 }
             }

             // @Override
             public void onAccuracyChanged(Sensor sensor, int accuracy) {
                 // no use for this
             }
         };

         if (useOrientation) {
             // enable Sensors
             enableSensors();
         }

         /**
          * Caches information and forces WrappedMotionEvent class to load at
          * Activity startup (avoid initial lag on touchpad).
          */
         this.mIsMultitouchEnabled = WrappedMotionEvent.isMutitouchCapable();
         // Setup accelerations
         mMouseSensitivityPower = 1 + ((double) Settings.sensitivity) / 100d;
         mScrollStep = (sScrollStepMin - sScrollStepMax) * (sScrollMaxSettingsValue - Settings.scrollSensitivity) / sScrollMaxSettingsValue + sScrollStepMax;

         Log.d(TAG, "mScrollStep=" + mScrollStep);
         Log.d(TAG, "Settings.sensitivity=" + Settings.scrollSensitivity);
         //
         this.accel = new Point3D();
         this.mag = new Point3D();
         this.lastSpace = new CoordinateSpace();
         this.currSpace = new CoordinateSpace();
         // UI runnables
         this.rLeftDown = new Runnable() {
             public void run() {
                 drawButtonOn(flLeftButton);
             }
         };
         this.rLeftUp = new Runnable() {
             public void run() {
                 drawButtonOff(flLeftButton);
             }
         };
         this.rRightDown = new Runnable() {
             public void run() {
                 drawButtonOn(flRightButton);
             }
         };
         this.rRightUp = new Runnable() {
             public void run() {
                 drawButtonOff(flRightButton);
             }
         };
         this.rMidDown = new Runnable() {
             public void run() {
                 drawSoftOn();
             }
         };
         this.rMidUp = new Runnable() {
             public void run() {
                 drawSoftOff();
             }
         };
         //  window manager stuff
         getWindow().setFlags(32, 32);
         // this.getWindow().setFlags(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN,
         //          WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
     }
     //
     try {
         DisplayMetrics dm = new DisplayMetrics();
         getWindowManager().getDefaultDisplay().getMetrics(dm);
         int width = getApplicationContext().getResources().getDisplayMetrics().widthPixels;
         int height = getApplicationContext().getResources().getDisplayMetrics().heightPixels;
         Log.i("Width", "" + width);
         Log.i("height", "" + height);
         this.sender = new OSCPortOut(InetAddress.getByName(Settings.ip), OSCPort.defaultSCOSCPort());
         //
         this.initTouchpad();
         this.initLeftButton();
         this.initRightButton();
         this.initMidButton();
         this.initAdvancedPanel();
         this.initAdvancedText();
     } catch (Exception ex) {
         Log.d(TAG, ex.toString());
     }
 }

 private void initTouchpad() {
                FrameLayout fl = (FrameLayout) this.findViewById(R.id.flTouchPad);

                // let's set up a touch listener
                fl.setOnTouchListener(new View.OnTouchListener() {
                        public boolean onTouch(View v, MotionEvent ev) {
                                return onMouseMove(ev);
                        }
                });
        }

        private void initLeftButton() {
                FrameLayout fl = (FrameLayout) this.findViewById(R.id.flLeftButton);
                android.view.ViewGroup.LayoutParams lp = fl.getLayoutParams();
//                if(!Settings.hideMouseButtons) lp.height=0;
                fl.setLayoutParams(lp);
                // listener
                fl.setOnTouchListener(new View.OnTouchListener() {
                        public boolean onTouch(View v, MotionEvent ev) {
                                return onLeftTouch(ev);
                        }
                });
                this.flLeftButton = fl;
        }

    private void initRightButton() {
            FrameLayout iv = (FrameLayout) this.findViewById(R.id.flRightButton);
            android.view.ViewGroup.LayoutParams lp = iv.getLayoutParams();
           // if(!Settings.hideMouseButtons) lp.height=0;
            iv.setLayoutParams(lp);
            // listener
            iv.setOnTouchListener(new View.OnTouchListener() {
                    public boolean onTouch(View v, MotionEvent ev) {
                            return onRightTouch(ev);
                    }
            });
            this.flRightButton = iv;
    }

    private void initMidButton() {
            FrameLayout fl = (FrameLayout) this.findViewById(R.id.flKeyboardButton);
            android.view.ViewGroup.LayoutParams lp = fl.getLayoutParams();
           // if(!Settings.hideMouseButtons) lp.height=0;
            fl.setLayoutParams(lp);
            // listener
            fl.setOnTouchListener(new View.OnTouchListener() {
                    public boolean onTouch(View v, MotionEvent ev) {
                            return onMidTouch(ev);
                    }
            });
            this.flMidButton = fl;
    }

Upvotes: 2

Views: 168

Answers (3)

AruLNadhaN
AruLNadhaN

Reputation: 2826

Atlast I Found why the Layout is not shown Properly in my App. It is Due to the this line in my three Initialization Methods .

 if(!Settings.hideMouseButtons) lp.height=0;

After Commenting this Line the layout shows properly.

Thanks for @chintan khetiya & @Robinhood who helped to Solve this.

Upvotes: 0

Chintan Khetiya
Chintan Khetiya

Reputation: 16142

Its Seems that your java file code is wrong. Your first function should be OnCreate() and rest of the code should be write after that.

Even you have set your view after long code which is totally wrong.

public class PadActivity extends Activity {
// set your variables & objects 
..
..

 @Override
 public void onCreate(Bundle savedInstanceState)
 {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.pad_layout); 
 ...
 ... //Other code
 } 
}

Please change your code position that will definitely work.

Upvotes: 3

Embattled Swag
Embattled Swag

Reputation: 1469

@id/flTouchPad's height is match_parent, which I think is the problem (it makes the View as big as its parent).

Upvotes: 0

Related Questions