Hi Jark, I changed from onStart() to onResume(),But still it prints as o for everything.
Is there any other way to get screen coordinates,,any suggestions please. Thanks Kavitha On Tue, Mar 24, 2009 at 12:07 PM, Jark Reijerink <jark.reijer...@gmail.com> wrote: > Hi Kavitha, > > If i look at the the Activity lifecycle --> > http://developer.android.com/reference/android/app/Activity.html > > I see that when the onStart() method is called the activity is becoming > visible, can you try changing onStart() into onResume()? > > With kind regards, > > Jark > > 2009/3/24 kavitha <kavith...@gmail.com> >> >> Hi Jark, >> >> I tried to print the view coordinates,they print value as 0. >> >> If i say v.getLeft() even that print it's value as 0. >> >> I am not understanding.Please help on this regard.It displays frame >> and images correctly in position. >> >> Here is my code.I am trying to print view values in onStart() >> >> >> package com.android.table; >> >> import android.app.Activity; >> import android.graphics.Bitmap; >> import android.graphics.BitmapFactory; >> import android.os.Bundle; >> import android.view.Display; >> import android.view.View; >> import android.view.ViewGroup; >> import android.view.WindowManager; >> import android.widget.FrameLayout; >> import android.widget.RelativeLayout; >> import android.graphics.Rect; >> >> public class GameDemo extends Activity { >> public static int idLayout = 1; >> public static int screenheight = 0; >> public static int screenwidth = 0; >> public AddPegHoles adp = new AddPegHoles(this); >> public Hole h; >> public static int holeid = 0; >> >> Hole[] holeArray = new Hole[3]; >> >> - Show quoted text - >> FrameLayout l1,l2,l3,l4,; >> RelativeLayout layout; >> /** Called when the activity is first created. */ >> �...@override >> public void onCreate(Bundle savedInstanceState) { >> super.onCreate(savedInstanceState); >> setContentView(R.layout.main); >> layout=(RelativeLayout) findViewById(R.id.tableviewback); >> layout.setBackgroundResource(R.drawable.woodenbackground); >> >> Display display; >> display = >> ((WindowManager)getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); >> screenheight = display.getHeight(); >> screenwidth = display.getWidth(); >> >> l1=(FrameLayout)findViewById(R.id.frame1); >> adp.addPegHoles(l1, 1,0); >> createHole(holeid,true,R.id.frame1,1); >> l2=(FrameLayout)findViewById(R.id.frame2); >> adp.addPegHoles(l2, 1, leftpadding+l1.getWidth()); >> holeid++; createHole(holeid,true,R.id.frame2,1); >> l3=(FrameLayout)findViewById(R.id.frame3); >> adp.addPegHoles(l3, 1, leftpadding+l1.getWidth()); >> holeid++; createHole(holeid,true,R.id.frame3,1); >> >> >> int leftpadding=(screenwidth/7); >> int toppadding=(screenheight/7); >> >> >> ViewGroup child=(ViewGroup)layout.getChildAt(0);//frame1 >> child.setPadding(45*2, 45, 0, 0); >> child=(ViewGroup)layout.getChildAt(1); // frame2 >> child.setPadding(45*3, 45, 0, 0); >> child=(ViewGroup)layout.getChildAt(2); //frame3 >> child.setPadding(45*4, 45, 0, 0); >> >> } >> >> public void onStart(){ >> super.onStart(); >> >> int[] loc=new int[2]; >> >> View v = layout.getChildAt(1); >> v.getLocationOnScreen(loc); >> System.out.println(loc[0]+loc[1]); >> System.out.println(v.getLeft()); >> System.out.println(v.getRight()); >> >> >> >> v=(FrameLayout)findViewById(R.id.frame1); >> >> v.getLocationOnScreen(loc); >> System.out.println(loc[0]+loc[1]); >> System.out.println(v.getLeft()); >> System.out.println(v.getRight()); >> >> } >> >> public void createHole(int holeid, boolean filled, >> int parent_frame_id, >> int parentrow) { >> h = new Hole(holeid); >> h.setHoleId(R.drawable.hole); >> h.setHoleIndex(0); >> h.setFilled(filled); >> h.setParentFrameId(parent_frame_id); >> h.setParentRow(parentrow); >> h.setMarbleId(R.drawable.marble); >> h.setMarbleIndex(1); >> holeArray[holeid] = h; >> >> } >> } >> >> And I am adding imageviews for frame in AddPegHoles.java looks like this >> >> package com.android.table; >> >> import android.content.Context; >> import android.view.ViewGroup; >> import android.widget.FrameLayout; >> import android.widget.ImageView; >> >> public class AddPegHoles { >> >> public Context context; >> public static int id=0; >> >> AddPegHoles(Context c){ >> super(); >> this.context=c; >> >> } >> >> public void addPegHoles(ViewGroup v,int row,int leftpadding){ >> >> ImageView iv1=new ImageView(context); >> iv1.setImageResource(R.drawable.hole); >> ImageView iv11=new ImageView(context); >> iv11.setImageResource(R.drawable.marble); >> id++; v.setId(id); >> v.addView(iv1,0);v.addView(iv11,1); >> >> } >> >> } >> >> >> >> >> >> >> And my AndroidManifest.xml looks like this >> <?xml version="1.0" encoding="utf-8"?> >> >> <RelativeLayout >> xmlns:android="http://schemas.android.com/apk/res/android" >> >> android:layout_height="fill_parent" >> android:layout_width="fill_parent" >> >> android:background="#000044" >> android:id="@+id/tableviewback" >> >> > >> >> <FrameLayout android:layout_height="wrap_content" >> android:layout_width="wrap_content" >> >> android:id="@+id/frame1"></FrameLayout> >> >> <FrameLayout android:layout_height="wrap_content" >> android:layout_width="wrap_content" >> >> android:id="@+id/frame2"></FrameLayout> >> >> <FrameLayout android:layout_height="wrap_content" >> android:layout_width="wrap_content" >> >> android:id="@+id/frame3"></FrameLayout> >> >> </RelativeLayout> >> >> >> >> Can anybody help on this???? >> >> Thanks >> Kavitha >> >> On Mon, Mar 23, 2009 at 5:28 PM, Jark Reijerink >> <jark.reijer...@gmail.com> wrote: >> > Hello, >> > >> > Are you sure you're getting a valid FrameLayout? >> > >> > Because if findViewById doesnt finds a valid view it returns null. Which >> > could explain the NullPointerException. >> > >> > Also: are you setting your xml layout with setContentView in your >> > onCreate >> > method? If so try putting your code after that method call. >> > >> > Jark >> > >> > 2009/3/23 kavitha <kavith...@gmail.com> >> >> >> >> Hii All, >> >> >> >> I am developing a game in android and i want to capture screen >> >> coordinates of a view(ImageView) which is embedded in frame. >> >> >> >> Hierarchy is >> >> <LinearLayout android android:layout_height="fill_parent" >> >> android:layout_width="fill_parent" > >> >> <RelativeLayout android:layout_height=fill_parent" >> >> android:layout_width="fill_parent" > >> >> <FrameLayout android:layout_height="wrap_content" >> >> android:layout_width="wrap_content" >> >> android:id="@+id/frame14"></FrameLayout> >> >> </RelativeLayout> >> >> </LinearLayout> >> >> >> >> At run time i am attaching two image views for frame layout.I wanted >> >> to capture screen coordinates of frame layout.But Couldnt do it.if i >> >> say >> >> >> >> (FrameLayout) f=(FrameLayout)findViewById(R.id.frame14); >> >> int[] loc = new int[2]; >> >> f.getLocationOnScreen(loc); >> >> System.out.println(loc[0]); >> >> System.out.println(loc[1]); >> >> >> >> I get Null Pointer Exception for getLocationOnScreen() method. >> >> >> >> If I try to get f.getLeft() and f.getRight() they return as 0 >> >> coordinates. >> >> >> >> Can anyone please tell me how to find location on screen of a view. >> >> >> >> I tried even in onStart() method,,,still i get Null Pointer Exception. >> >> >> >> Please tell me how to get screen coordinates of a view in android. >> >> >> >> It is very urgent.Please help. >> >> >> >> Thanks >> >> Kavitha >> >> >> > >> > >> > > >> > >> >> > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Beginners" group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~----------~----~----~----~------~----~------~--~---