By reading this: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams
I'd say you need to change this: msettingsLayout.setLayoutParams(new LinearLayout.LayoutParams(settingsw, settingsh)); into: msettingsLayout.setLayoutParams(new *FrameLayout*.LayoutParams(settingsw, settingsh)); This is most probably because your LinearLayout msettingsLayout is inside a FrameLayout, and so its layout params must be of its parent class. Cheers, Yuvi DroidAhead http://www.droidahead.com On Sun, Mar 25, 2012 at 10:09 PM, Jim Graham <spooky1...@gmail.com> wrote: > I'm trying to build the layout for my camera app. The camera preview > goes on the left, and is set to the largest supported size that fits > within 65% of the display width and 100% of the display height. > > The remaining 35% of the width is for two things: first, a TableLayout > (set inside of a ScrollView) with textviews and spinners (side by side) > for spinner labels and the spinners themselves. Below that is a > LinearLayout (horizontal) for a TextView and the shutter release image. > > The left side works fine. No problem. The right side works fine on my > tablet, but not on my phone (Motorold Bravo MB520). What inevitably > happens with the layout on my phone is the textviews/spinners taking > the full screen, and the shutter release button is nowhere to be seen. > > I've played around with the weights, and nothing seems to change the > end result. > > I've tried setting the width and height of the image from Java...nothing. > > I've tried resizing the image and changing its density...no change. > > I've tried setting the width and height of the two layouts on the left > (when both were LinearLayouts ... before the TableLayout), and every > time I've tried to do this, I get a force close with the logcat data > shown below, saying that "android.widget.LinearLayout$LayoutParams cannot > be cast to android.widget.FrameLayout$LayoutParams". Just one > problem: NOWHERE in any my project will you find the word "Frame" > (ignoring case for the fgrep). > > Logcat output (relevant to the force close): > > --------------------------- CUT HERE --------------------------- > > 2012-03-25 14:43:42.320 E 24222/AndroidRuntime: FATAL EXCEPTION: main > java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams > cannot be cast to android.widget.FrameLayout$LayoutParams > at android.widget.FrameLayout.onMeasure(FrameLayout.java:268) > at android.widget.ScrollView.onMeasure(ScrollView.java:308) > at android.view.View.measure(View.java:10828) > at > android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4351) > at > android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1284) > at > android.widget.LinearLayout.measureVertical(LinearLayout.java:613) > at android.widget.LinearLayout.onMeasure(LinearLayout.java:519) > at android.view.View.measure(View.java:10828) > at > android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4351) > at > android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1284) > at > android.widget.LinearLayout.measureHorizontal(LinearLayout.java:956) > at android.widget.LinearLayout.onMeasure(LinearLayout.java:521) > at android.view.View.measure(View.java:10828) > at > android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4351) > at android.widget.FrameLayout.onMeasure(FrameLayout.java:267) > at android.view.View.measure(View.java:10828) > at > android.widget.LinearLayout.measureVertical(LinearLayout.java:764) > at android.widget.LinearLayout.onMeasure(LinearLayout.java:519) > at android.view.View.measure(View.java:10828) > at > android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4351) > at android.widget.FrameLayout.onMeasure(FrameLayout.java:267) > at > com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:1912) > at android.view.View.measure(View.java:10828) > at android.view.ViewRoot.performTraversals(ViewRoot.java:938) > at android.view.ViewRoot.handleMessage(ViewRoot.java:2040) > at android.os.Handler.dispatchMessage(Handler.java:99) > at android.os.Looper.loop(Looper.java:132) > at android.app.ActivityThread.main(ActivityThread.java:4123) > at java.lang.reflect.Method.invokeNative(Native Method) > at java.lang.reflect.Method.invoke(Method.java:491) > at > com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) > at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) > at dalvik.system.NativeStart.main(Native Method) > > --------------------------- CUT HERE --------------------------- > > I should point out that I have imported android.widget.LinearLayout and > android.widget.LinearLayout.LayoutParams, and the variables for the layouts > are defined, e.g., > > LinearLayout msettingsLayout; > > and set by reference to their resource ID, e.g., > > msettingsLayout = (LinearLayout) findViewById(R.id.settingsLayout);" > > Changes to the width and height are set: > > msettingsLayout.setLayoutParams(new LinearLayout.LayoutParams(settingsw, > settingsh)); > > And this is where the force close happens; comment out this line (and the > other one that differs only in variable/layout names), no force close. > > > I've double-checked my use of the above in the Dev Guide, and in several > Android programming books that I have (print versions and eBook > versions, as well as online tutorials and old apps of mine), and unless > I've just missed something (like a typo, etc.), it appears to be valid > code. > > Does anyone have any ideas as to what might be going on here? This has > been nagging me for ... well, I can't remember if it's been two or three > weeks, or longer. Basically, I give up. > > Thanks, > --jim > > -- > THE SCORE: ME: 2 CANCER: 0 > 73 DE N5IAL (/4) | DMR: So fsck was originally called > spooky1...@gmail.com | something else. > < Running FreeBSD 7.0 > | Q: What was it called? > ICBM / Hurricane: | DMR: Well, the second letter was different. > 30.44406N 86.59909W | -- Dennis M. Ritchie, Usenix, June 1998. > > Android Apps Listing at http://www.jstrack.org/barcodes.html > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en