آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

گرفتن عرض و طول صفحه

miladmousavi  8 سال پیش  8 سال پیش
0 0

با سلام. من عرض و طول صفحه رو اومدم با کد زیر به دست بیارم:

final DisplayMetrics displayMetrics = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
final float A = displayMetrics.widthPixels;
final float B = displayMetrics.heightPixels;

خروجی که برای ارتفاع بهم داد 1776 بود. می خواستم یک ویو رو جا به جا کنم و بذارم جایی که نصف ارتفاع اونجاست. اما به جای این که بره وسط خیلی میاد پایین.

888 عددیه که نشون دهنده ی نصف ارتفاعه. بالایی هم که مال محور x هاست که اصلا مهم نیست. 

سوال من اینه که چرا این اتفاق می افته و من باید چکار کنم که این ویو دقیقا بیفته وسط؟؟؟

0 0
عدد 888 رو منهای یک دوم اندازه ی ویو کنید ببینید درست میشه ؟ (8 سال پیش)
 برای این سوال 2 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
Criss  8 سال پیش
+2 0

 پاسخ صحیح
 
private static final int WIDTH = context.getResources().getDisplayMetrics().widthPixels;
private static final int HEIGHT = context.getResources().getDisplayMetrics().heightPixels;


public static int screenHeight() {
return HEIGHT;
}


public static int screenWidth() {
return WIDTH;
}

یک lineqarLayout بزارید MatchParent و Gravity Center مواردتون رو درون addView کنید

پاسخ به سوال 
احمد  8 سال پیش
+1 0

اول گرفتن طول و عرض:

 
public static int getWidth(){
android.view.Display display =G.currentActivity.getWindowManager().getDefaultDisplay();
Point size=new Point();
display.getSize(size);
return size.x;

}
public static int getHeight(){
android.view.Display display =G.currentActivity.getWindowManager().getDefaultDisplay();
Point size=new Point();
display.getSize(size);
return size.y;
}

دوم جابجایی :  در لیستنرش میتونی چندتا متد دیگه ovrride کنی   مثلا من اینجا درپایان انیمیشن اونا gone  کردم

البته توجه کن میتونی حرکت را در محورx(مثال من ) ویا محور y  حرکت کنه ... بهتره که به لایه ها در xml وزن بدی(مثال من 0.35)   وبا همون وزن ها  کار کنی

 
myView.animate().translationX(getWidth()*0.35f).setDuration(800).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
myView.setVisibility(View.GONE);

}

});

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .