ورود

View Full Version : به دست آوردن طول و عرض گجت



azita90
چهارشنبه 01 بهمن 1393, 22:48 عصر
سلام به همه دوستان.من کاملا مبتدی ام. خواهش میکنم جوابم رو بدید.:ناراحت:
می خواستم بپرسم اگر بخوام یک imageView رو توی یه نقطه مشخص قرار بدم باید چیکار کنم؟
می دونم که میشه طول و عرض اسکرین رو با دستوراتی مثل این به دست آورد:



DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics( displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;


اما سوالم اینه که من اگه بخوام محل قرار گیری imageview، در نقطه ای به مختصات ( 0.3width , 0.5 height ) باشه باید این محل رو چجوری توی فایل activity-main.xml بنویسم؟
توی حالت عادی توی فایل activity-main.xml برای imageView می نویسم:


android:layout_marginTop="25dp"
android:layout_marginLeft="25dp"


اما سوالم اینه که به جای 25dp چجوری بنویسم 0.3width ؟

azita90
جمعه 08 اسفند 1393, 16:11 عصر
سلام.خودم یه راه برای این کار پیدا کردم.
در فایل .java مربوط به اکتیویتی که imageView مورد نظر در آن قرار داره این کد ها رو می نویسیم:



DisplayMetrics displayMetrics=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics( displayMetrics);
int screenHeight=displayMetrics.heightPixels;
int screenWidth=displayMetrics.widthPixels;




ImageView beeImgViw=(ImageView)findViewById(R.id.beeImgViw);




/*bee 's position*/
int beeImgViwLeft=(int) (0.4 * screenWidth);
int beeImgViwTop=(int) (0.45* screenHeight);

RelativeLayout.LayoutParams beeLayoutParams=new RelativeLayout.LayoutParams(RelativeLayout.LayoutP arams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRA P_CONTENT);
beeLayoutParams.setMargins(beeImgViwLeft, beeImgViwTop, 0, 0);
beeImgViw.setLayoutParams(beeLayoutParams);